跳转至

单总线(ONE WIRE)


1. 概述

SDK内置组件中单总线组件为基础组件,软件实现通用单总线协议,使用硬件资源一个硬件TIMER一个GPIO口;方便应用开发人员快速对接单总线设备,单总线要求外接一个约5K的上拉电阻,这样当总线空闲时,总线状态为高电平。


2. 使用说明

  • 相关宏配置说明如下:
/*-----------------------------------------------------------------------------
                            define
-----------------------------------------------------------------------------*/
/* 用到的硬件TIMER定义 */
#define ONE_WIRE_TIMER (TIMER0)
#define ONE_WIRE_TIMER_IRQ (TIMER0_IRQn)
#define ONE_WIRE_TIMER_US (get_apb_clk()/1000000)
/* 发送复位信号延时定义 */
#define ONE_WIRE_SEND_RESET_TIMER_US (480)/* 发送复位时间 */
#define ONE_WIRE_READ_RESPOND_TIMER_US (70)/* 读取响应时间 */
#define ONE_WIRE_RESPOND_CONTINUE_TIMER_US (480)/* 响应持续时间 */
/* 写数据信号延时定义 */
#define ONE_WIRE_WRITE_PREPARE_TIMER_US (15)/* 写数据准备时间 */
#define ONE_WIRE_WRITE_TIMER_US (30)/* 写数据时间 */
#define ONE_WIRE_WRITE_CONTINUE_TIMER_US (65)/* 写数据持续时间 */
/* 读数据信号延时定义 */
#define ONE_WIRE_READ_PREPARE_TIMER_US (3)/* 读数据准备时间 */
#define ONE_WIRE_READ_TIMER_US (13)/* 读数据时间 */
#define ONE_WIRE_READ_CONTINUE_TIMER_US (63)/* 读数据持续时间 */
  • 相关API接口如下:
函数 描述
one_wire_init 单总线初始化
one_wire_write 单总线写数据
one_wire_read 单总线读数据
one_wire_timer_handler 单总线timer中断处理函数