一线总线器件异步读写实现方法
2014-06-01于志豪肖林京张瑞雪槐瑞托
自动化仪表 2014年1期
于志豪 常 龙 肖林京 张瑞雪 槐瑞托
(山东科技大学机械电子工程学院1,山东 青岛 266590;山东科技大学信息与电气工程学院2,山东 青岛 266590)
0 引言
一线总线技术将地址线、数据线、控制线、电源线合为一根信号线,这根信号线上允许挂数百个使用一线总线技术的测控对象,较大规模地减少了测控设备的引线数量[1]。一线总线结构的数字式温度传感器以其检测精度高、抗干扰力强、硬件结构简单等诸多优点得以广泛应用[2-3]。
在基于MCU的一线总线驱动程序设计中,因一线总线器件的时序要求相对严格,大多采用CPU延时等待的方法来实现精确延时[4-5]。这种延时属于典型的同步程序风格。在整个一线总线操作期间,CPU延时等待方法直接导致了CPU大量消耗于总线时序的处理而无法顾及其他工作[6-7]。
本文以Arm-Cortex芯片作为一线总线器件的主控器,通过一个定时器的四个中断实现一线总线器件的读写时序。将一线总线单个数据位读写过程中的四个关键时间点作为MCU系统的中断点,在中断程序中由CPU完成总线状态位的修改,从而实现一线总线数据位的读写。该方法充分发挥了MCU系统外设的工作能力。在定时器的协助下,以极低的CPU占用率实现了一线总线的异步读写。
1 一线总线读写时序
18B20是工业现场广泛采用的数字式温度传感器。该器件采用了一线总线技术,可以大规模地减少多点温度测量系统中测温传感器的引线数量。
使用基于一线总线结构的数字式温度传感器DS18B20测量温度,特别是在多点测量领域,必须首先确定总线上所有器件的64位的序列号[8]。……
登录APP查看全文
