摘 要:分析了1-Wire总线的硬件结构和通信协议,结合实际应用设计了1-Wire器件与8051系列单片机的软件接口。
关键词:1-Wire总线,软件接口,CRC校验
1 引言
现在,单片机应用系统的外围扩展已逐渐从以并行方式为主过渡到以串行方式为主,许多新型外围器件都带有串行扩展接口。通常的串行扩展接口和串行扩展总线有:UART的移位寄存器方式,MOTOROLA公司的SPI,NS公司的Microwire,Philips公司的IIC和Dallas公司的1-Wire总线等。1-Wire总线是一种最简单的总线形式,它通过单条连接线完成了全部的控制、通信和供电,节省了I/O口,降低了系统成本并简化了设计。1-Wire器件家族包含多种功能的器件,如身份识别器、传感器、控制和存储器等。在应用系统中,需要将这些简易实用的外围器件与系统中的微控制器互连。常用的方法包括:简单的软件方案;串行接口芯片,如DS2480;或以VHDL方式整合1-Wire主控器于定制的ASIC中。本文结合以1-Wire温度传感器构成的温度测控系统,详细讲述1-Wire器件与常用的8051系列单片机的软件接口。
2 1-Wire总线简述
2.1 硬件配置
1-Wire总线通常如图1连接,构成一个简捷的1-Wire网络,它包括三个主要部分:带有控制软件的主控器(Master),连接上拉电阻和稳压二极管的连接线,以及各种功能的1-Wire器件(Slave)。漏极开路的端口结构和上拉电阻Rpu使总线空闲时处于高电平状态(3V至5.5V),从器件可直接从数据线上获得工作电能(节省了电源线)。每一位读写时隙开始时,主控器把总线拉低(小于0.8V),结束时,释放总线为高电平,这种按位自同步的数据传输方式节省了时钟线。稳压二极管将总线最高电平限定在5.6V,起保护端口的作用。
1-Wire器件内部结构如图1所示,1-Wire接口实现供电和同步。ROM存储一个由厂家光刻的、全球唯一的、且不可更改的64位序列号,内容如图2所示。最低8位是器件的类型号(Family Code),功能相同的一类器件具有相同的类型号;然后是48位器件序列号(Serial Code);最后是8位CRC校验位用于验证数据传输的正确性,这样,实际可用的256个序列号为器件或其附着的电路板或系统在1-Wire网络中提供唯一的电子识别。外围部件完成某一特定的功能,主控器通过对RAM的读写操作对器件进行控制。
2.2 通信规程
1-Wire总线采用主从式、位同步、半双工串行方式通信,如图3所示,分以下三步:
(1)总线初始化,主控器先复位脉冲,然后从器件发应答脉冲。
(2)ROM指令,主控器通过ROM指令来读取各从器件的ROM识别码,以选择1-Wire总线上的某一器件,其余器件忽略主控器的后续指令。
(3)RAM指令,通过对从器件RAM的读写操作,让外围器件实现某一功能。
所有1-Wire器件与主控器之间的通信都符合上述规程,但不同类型的1-Wire器件的结构和功能不同,8比特的ROM指令和RAM指令会略有不同,系统设计时查器件数据手册即可。
3 接口时序及软件模拟
在所设计的温度测控系统中,选用了达拉斯公司性能优良的1-Wire温度传感器DS1822,以一片常用的AT89C51作为系统主控器。89C51与1-Wire器件互连时,需要根据1-Wire总线协议,用软件模拟1-Wire总线接口,89C51的P1和P3口都具有与1-Wire器件相同的集电极开路接上拉电阻的端口结构,根据管脚分配情况,选用P1.0模拟1-Wire总线接口。
如图4所示,1-Wire总线上的数据传输是通过1-Wire总线协议最底层的操作时隙完成的。每个通信周期起始于主控器发出复位脉冲,然后,1-Wire器件以应答脉冲做出响应。当主控器将总线从空闲状态的逻辑高拉为逻辑低时,即启动了一个读写时隙。在写“0”时隙中,主控器在整个时隙期间将总线拉低;而后在15us之内释放总线为高。在读时隙中,主控器将总线拉低1us,接头释放总线,这样,1-Wire从器件就能够接管总线,输出有效数据。所有的读写时隙在60us至120us内完成,并且每个时隙之间至少需要1us的恢复时间。
按图4的时序要求,先建立以下几个关键的子函数,作为1-Wire器件与8051系列单片机的软件接口的基础(晶振频率为12M,一个机器周期为1us)。
在上述时序模拟子函数的基础上,建立读、写一个子节函数,根据1-Wire协议的要求,传送数据时低位在前高位在后。
主控器读入1-Wire器件数据后,会进行CRC校验。1-Wire协议采用的8位CRC校验的生成多项式为:
g(x)=x8+x5+x4+1
其硬件生成器如图5所示。
[page]
把单片机的8位存储单元TEMP看成一个8位生成器,按图4的结构,很容易得到计算一个字节的8位CRC校验的汇编子函数,输入字节置于读写累加器A中,计算的累计CRC校验结果置于暂存单元TEMP中。设TEMP的初值为00H,8次循环调用CRC函数,即可得64位ROM号的CRC校验结果,读数正确时,前7个字节(Family Code+Serial Code)的CRC校验计算结果TEMP应与ROM号最后一个字节(8BIT CRC)的值相同,最后的校验值TEMP应为00H。
上述的总线初始化函数START、字节读写函数RDBYTE、WRBYTE和CRC校验函数就构成了8051系列单片机与1-Wire器件通信的软件平台,在设计时只需按规程调用这4个函数,就可轻松构建起一个1-Wire总线扩展的单片机应用系统。
4 软件接口应用
数片DS1822按图1连接到AT89C51的P1.0脚,按图3的1-Wire总线通信规程,调用上述软件接口,即可构成一个简单实用的温度测控系统DS1822是一种精度可调的(9至12比特)的1-Wire数字温度传感器,其RAM结构如图6所示,最低两字节只读,用于保存每次采集温度值;Th寄存器和T1寄存器分别用于设定温度传感器告警的最高和最低温度;设置寄存器用于设定温度传感器的采和最低温度;设置寄存器用于设定温度传感器的采样精度;对应的EEPROM用于掉电时保存用户设置。
DS1822的指令字及其功能如表1所示。
系统从主控器片内RAM30H至37H单元中读取事先存储的ROM号,从总线上选择该器件,启动温度变换,再读取温度于70H、71H中的程序如下:
5 结束语
1-Wire总线连线简捷,1-Wire器件种类多样,功能丰富,必将得到日益广泛的应用。本文详细阐述了目前普遍使用的8051单片机与1-Wire总线的软件接口,为单片机应用系统的串行扩展提供了一种行之有效的参考方案,它还可以方便地移植到其它系统中。
参考文献
1 何立民.按平台模式设计的虚拟I2C总线软件包VIIC.单片机与嵌入式系统应用,2001(2)
2 丁元杰.单片微机原理及应用.北京:机械工业出版社,1999
上一篇:提高485总线在集饭系统中的可靠性
下一篇:USB软件加密卡及其驱动程序的设计与开发
推荐阅读最新更新时间:2023-10-12 20:39
基于VMM验证方法学的MCU验证环境
1 简介
随着设计的复杂程度不断增加,要求把更多的资源放到验证上,不但要求验证能够覆盖所有的功能,还希望能够给出大量的异常情况来检查DUT对应异常的处理状态,这在传统测试方法下往往是难以实现的。此外,设计不断地重用,而验证也希望能够重用一样的验证模块,这就催生了层次化的验证方法。Synopsys的 VMM验证方法学提供了基于SystemVerilog的验证方法,包括了有约束的随机数生成,层次化的验证结构,以及以功能覆盖率为指标的验证流程。在本文中,围绕Synopsys的VMM(Verification Methodology Manual)构建了一个MCU验证环境。
2 DUT
在这个环境中验证了一个8位MCU,
[单片机]
基于单片机和车辆检测器的车型分析技术研究分享
1 引言
在科学技术飞速发展的今天,单片机也日新月异,迅速发展。目前,他不仅在工业上有极广泛的应用,而且已普遍地渗透到国民经济各个部门,特别在交通建设中起着重要的作用。在目前和今后的交通系统中,车辆检测器以其交通控制的“耳目”而引起交通工程专家们的高度重视,车辆检测器可为交通监视与控制系统提供车辆感应信号,提供有关交通环境条件的情报与数据。车辆检测器的种类很多,检测方式也各不相同,目前主要使用的车辆检测器有电磁式车辆检测器、地磁式车辆检测器、超声波式车辆检测器、环形线圈(有源和无源两种)车辆检测器等。这些检测器的主要工作原理各不相同,但他们都是基于车辆通过或存在,使检测器中能量发生变化而产生车辆感应信号。
2 国
[单片机]
单片机与PLC通信的海量数据存储
1. 是利用现有的成熟的PLC技术,对各设备的监控点数据进行采集;
2. 再使用单片机技术,对PLC采集后的数据进行读取,并按照一定的格式存储在存储设备中,存储设备可以是U盘,存储卡等;
3. 使用读卡设备将存储的数据读出,并导入普通PC中,对读取数据进行分析
基本组成图:
图1 总框图
PLC数据采集:
采用成熟的PLC技术,不需开发,使用西门子S7-200系列。 S7-200 PLC是串行通讯方式最为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用
[单片机]
通常采用什么方法来测试单片机系统的可靠性?
通常采用什么方法来测试单片机系统的可靠性?
答:单片机系统可以分为软件和硬件两个方面,我们要保证单片机系统可靠性就必须从这两方面入手。
首先在设计单片机系统时,就应该充分考虑到外部的各种各样可能干扰,尽量利用单片机提供的一切手段去割断或者解决不良外部干扰造成的影响。我们以HOLTEK最基本的I/O单片机HT48R05A-1为例,它内部提供了看门狗定时器WDT防止单片机内部程序乱跑出错;提供了低电压复位系统LVR,当电压低于某个允许值时,单片机会自动RESET防止芯片被锁死;HOLTEK也提供了最佳的外围电路连接方案,最大可能的避免外部干扰对芯片的影响。
当一个单片机系统设计完成,对于不同的单片机系统产品会有不
[单片机]
意法半导体将Movea动作处理解决方案集成进MCU
日前,意法法半导体表示,将Movea的动作处理方案集成进STM32F401微控制器,这也就意味着这款产品将被用于sensor-hub等场合,包括导航、运动监控等。
“STM32F401可用于sensor-hub任务应用处理器,可以降低系统整体功耗,令智能手机添加更多的传感功能成为可能。”意法半导体微控制器产品部总经理Michel Buffa表示。
采用sensor-hub处理器后,可以通过简单的手势来启动相应的传感器及某些应用程序,而无需解锁手机及使用手机处理器,这样便可以进一步节约手机系统功耗。
Movea的行人导航方案是一个真正的低功耗解决方案,包括软件、固件以及相应的开发工具。支持所有运动处理器,提供And
[传感器]
采用赛普拉斯WICED连接和PSoC MCU技术、用于商业LED照明的方案
作者:Greg Phillips,云端架构首席技术官,Inventek Systems 多年来,商业照明空间主要由荧光灯管照明。虽然它们比使用白炽灯照明节省了大量费用,但却有严重的性能、维护和使用问题,如寿命短、色温变化大、随机闪烁和嗡嗡声,无法有效调光以节省电力等。另外,根据使用要求频繁打开和关闭荧光灯会大大缩短它们的使用寿命,并且增加了启动期间的功耗,这通常抵消了灯具关闭时节省的电力。 商业LED 照明的发展促使人们对如何实施商业照明进行全面的反思。这包括增加智能控制系统作为全面能源管理的关键要素。这些LED灯具控制器(也称为LED控制器和灯具)现在通常是联网设备。这些LED照明灯具是物联网照明的基石。 LED
[物联网]
单片机在智能照明控制中的应用
1 引 言 随着微电子技术的不断发展,单片机的应用越来越广,照明控制技术面临革命性的变革,主要有三大趋势:电子化,网络化,集成化。传统的照明是动力线按需分线,用机械开关通、断电源,这样系统固定后无法再改动,若要实现复杂的控制要求就更难。而随着大量智能楼寓的推出,管理人员和住户对照明系统提出了许多个性化要求,这就需要有新的照明控制技术的引进。传统照明的特点是动力线与控制线重叠,不存在控制信息流的概念。改进方法之一是使动力线与控制线分离,即另行铺设控制信号线〔1〕〔2〕。 2 系统的总体组成及其原理 四单元智能照明系统组成如图1所示。该系统由K1,K2,K3,K4四个单元组成,每个单元内有A,B,C,D四个开关集中操作,四个A
[单片机]
STM32U575/585微控制器的超低功耗特点
引言 STM32U575/585 微控制器(MCU)基于具有 Arm TrustZone和 FPU 的高性能 Arm 32 位 Cortex‑M33CPU。这些 MCU 采用新型结构制造,得益于其高度灵活性和高级外设集,实现了一流的超低功耗性能STM32U575/585 器件可为应用实现极高的能效。 带有“Q”后缀的 STM32U575/585 器件(例如 STM32U5xxxxQ)支持在运行和低功耗模式下使用内部 SMPS,从而能够设计出非常高效的低功耗应用 通过集成 ART 加速器 8 KB 指令缓存,STM32U575/585 MCU 可在高达 160MHz 的频率下运行,实现 240 DMIPS 性能,同时保持极低
[单片机]