麦叔是搞嵌入式的,最近项目delay,他和我说用uart驱动1-wire设备总是出现问题,故写此文来拯救他。
作者之前写过uart(点我),也写过1-wire(点我),本文介绍如何用主机的uart驱动1-wire从机设备,建议先看看以上两篇文章,再阅读本文,效果更佳。
硬件电路
1-wire结构简单,一根线就可以通信,常见的18b20用的就是1-wire结构。单片机的串口uart(多是ttl电平),如何用单片机控制通用的1-wire设备呢?如果mcu和从设备的电平不一致如何解决?软件协议又是如何控制的呢?本文主要解决这两个问题。
主机或从机将数据线拉低到gnd表示数据0,将数据线释放为高表示数据1,高电平由上拉电阻(一般是4.7k)提供。
当mcu发送逻辑1时,经过反相器,总线呈现逻辑0,逻辑0经过1-wire器件的反相器,即会收到逻辑1;
当mcu发送逻辑0时,经过反向器,总线呈现逻辑1,逻辑1经过1-wire 器件的反相器,即会收到逻辑0;
当1wire 器件发送逻辑1时,tx处有nmos会导通,总线呈现逻辑0,经过mcu rx 处的反相器,mcu会收到逻辑1;
当1wire器件发送逻辑0时,nmos截止,总线呈现逻辑1,mcu会收到逻辑0;
主机端(bus master)多为mcu,因为mcu的txd不是漏极开路,因此通常需要一个外部漏极开路缓冲电路,该电路可以由分立元件构成。
用两个nmos管2n7002,原理很简单:
txd输出高电平时,左边的2n7002导通,右边的截止,dq被4.7k电阻上拉至vpullup高电平;
txd输出低电平时,左边的2n7002截止,右边的导通,dq被拉低至低电平0;
用分立器件搭建的缓冲电路
也可以用集成芯片nc7wz07,如下图所示,txd输出高,dq=vpullup,txd输出低,dq=0;
用集成芯片搭建的缓冲电路
解决了硬件电路,我们再来看软件协议部分,1-wire的协议可以分为复位/应答、写0/写1时隙、读0/读1时隙。
软件协议
复位/应答
如下图,上面部分是1-wire的复位/应答时序,下面是uart的时序。
复位/应答信号时序
原理:
主机以9600的波特率发送数据0xf0,因为lsb在前,0xf0=00001111,加上最前面的start bit和最后面的stop bit,完整的数据为:0000011111,代表主机先发了5位的0,然后发了5位的1;9600波特率,一位传输时间是1/9600=104.2us,所以低电平持续时间为104.2*5=521us,满足480~960us复位总线的时序要求。
那主机收到什么数据代表从机应答呢?
首先主机如果发送f0后收到还是f0,说明从机没有应答,从机应答总线数据会改变,可以简单的判断收到的数据为非f0即代表从机应答。
根据1-wire的时序波形,也可以进行推算,从上图看,data0~data3均为0,因为1-wire时序是有一定时间范围,并不是固定的脉宽,如tpdh为15~60us,tpdl为60~240us,所以data4~data7是有一定的组合,返回0x10(00001000) to 0x90(00001001)都代表从机应答。
写0/写1时隙
主机写0就是0x00,也可以加入回读,回读值即为写的值。
写0时隙
写1就是0xff,回读值即为写的值。
写1时隙图
读0/读1时隙
关于读时隙,可以先看主机读1时,主机先拉低总线,一般时间1us左右,uart的start bit会占1/115200=8.7us的脉宽(大于1us),所以从data0开始,后面的数据都为1,即读到的数据为11111111(0xff)代表读到的是1。
读1时隙图
那读0也就很简单,读到的数据不为0xff即为0。
读0时隙图
小结一下
实际代码里面的判断,可以简单处理,复位/应答:发送f0,返回不为f0,即代表从机应答;读0/读1时隙:主机读到0xff即为1,读到非0xff即为0;简单又可靠,麦叔还不会。
今天的文章到这里就结束了,希望对你有帮助,我们下一期见。
BlackBerry QNX技术助力拜腾打造创新型车内体验
华为正式发布智能计算业务战略将从四个方面加速行业智能化进程
微型智能蓝牙无线数据传输电路设计攻略
箱式变压器的噪音处理测量和解决方法
Silicon Labs面向嵌入式物联网应用推出全新超低功耗和高性能
为什么UART驱动1-Wire设备总是出现问题?
7805稳压电路介绍_7805稳压电路三个电容分别是什么?
PCI-Express插槽
关于国内UWB室内人员定位的无线频段说明
新一代8通道脑电采集芯片研制成功,铠侠与西部数据已中止合并谈判
为加速智能产业发展,天津刮起了一场人工智能产业风暴
为集成商服务的工业物联网平台
基于TMS320DM6446的H.264编码器实现与优化
小鹏汽车交付新车同比蔚来汽车环比下降63%
京信通信上半年实现净利润同比减少35.4%,未来将加快5G相关产品的推出
HTC Amaze 4G(Ruby)即将到来
智能锁代理该怎么选?坤坤智能锁告诉你
雷神白幽灵K7-Procherry机械键盘评测 兼具外观和性能同时性价比非常高
华为P10新爆料:颜值再创新高 配置追上mate9
微机消谐装置的技能您了解多少呢?