第4章 系统的硬件设计
4.1 CAN通信电路设计
通信电路主要由电源、微控制芯片AT89C52、CAN总线控制器SJA1000、CAN总线驱动器82C250、光电耦合器6N137以及一些必要的外围电路组成。CAN数据通过82C250传输到SJA1000,AT89C52处理后再传出去。CAN电源采用高性能的DC/AC变换器,能起到稳定电压和隔离防干扰的作用。CAN通信的框图及硬件电路设计图如图4.1和4.2所示。
CANHCAN总线收发器光电耦合器6N137CAN控制器SJA1000微控制器AT89C52CANL 图4.1 CAN结构通信框图
16
VCCVCCAD0AD1AD2AD3AD4AD5AD6AD7123456789101112INT131415RW16RD/E1718CLKOUT1920P1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RST/VPDP0.7P3.0/RxDEA/VppP3.1/TxDALE/PROGP3.2/INT0PSENP3.3/INT1P2.7P3.4/T0P2.6P3.5/T1P2.5P3.6/WRP2.4P3.7/RDP2.3XTAL2P2.2XTAL1P2.1GNDP2.089C524039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7INT1RDWR232425262728121656AD0AD1AD2AD3AD4AD5AD6AD7INTRD/ERWTX0TX1RX0TX1131419203006.5k3.6kVCC3501234N/CVCCIN+VEIN-V0N/CGND6N1378765390+5VMODEVDD1Vss1VDD211228180.1uVCC8765VCCVEV0GND6N137N/CIN+IN-N/C12340.1uXTAL173174VSS2VDD3CLKOUTALE/ASRSTCSSJA1000XTAL2VSS3XTAXL121120.1u15922P3901024MHZ22P+5V0.1+5V21432TXDVrefRXDCANLVCCCANHGNDRs82C2501.6K5675CANLCANH10uSW10K1 图4.2 CAN通信硬件电路设计图
对于主节点和从节点的微控制器来说,复位十分重要,这直接决定其是否能够正常工作。本电路采用简单的复位方式,在正常工作状态下,RSR脚与地的电位相等为低电平,故复位不起作用。当SW按下时,电容放电,RST脚为高电平,从而使单片机复位。送客SW时,VCC给电容充电,从而使RST脚慢慢变为低电平,脱离复位状态。
SJA1000作为单片机89C52的外部扩展器件,通过并行扩展与89C52连接。这样,只需要一般的单片机仿真器就可以进行硬件调试。82C250和SJA1000可完成物理层和数据链路层的工作,应用层由89C52运行应用程序来实现。89C52的外部晶振频率由
17
SJA1000的CLKOUT引脚提供,保证了89C52和SJA1000时序同步。SJA1000所接的晶振频率为24MHz,经过时钟分频器寄存器二分频后,CLKOUT引脚输出12MHz时钟频率。89C52的P2.7引脚是SJA1000的片选信号。相应的SJA1000片内模式寄存器MOD的地址为07F00H,命令寄存器CMR的地址为07F01H,依此类推。
设计时为了预防现场噪声干扰,切断89C52与输出总线上直接电信号联系,使用的光电隔离电路。光电耦合器件是通过光媒介进行间接耦合,因而输入端和输出端没有公共信号接地,也就隔离了干扰信号的直接传导。另外,光电耦合也是一种能量传递器件。一般干扰噪声源的内阻很大,虽然也能提供较大的干扰电压,但是可以提供的能量却很小,只能形成很微弱的电流。因此,即使电压幅值很高的干扰,由于没有足够的能量,也不能使发光器件发光,从而滤掉了干扰信号。本电路使用的是6N137光电耦合器。
4.2 智能温度节点设计
智能节点可以分为:温度采集模块、通信接口模块、报警模块、CAN总线接口模块和执行器控制模块。智能节点的系统框图如图4.3所示。
报警电路CAN总线接口实时时钟CPU温度采集模块存储器执行器控制接口
图4.3 智能节点电路系统框图
智能节点主要功能是测量现场温度并显示,同时通过CAN总线向测控PC发送测试数据,响应测控PC的操作指令;当温度超过限值时,主动向测控PC发报警信息并通过LED报警提示。其硬件电路如图4.4所示。
18
DS18B20数码LED光电耦合器82C250下限LEDAT89C52MCUSJA1000控制器上限LED上电指示
图4.4 智能温度节点硬件原理图
智能节点由89C52、CAN控制器SJAl000、CAN总线收发器82C250及高速光电隔离数字10单元等构成。为提高节点的可靠性,在CANH、CANL引脚与总线之间串联512Ω电阻;在CANH、CANL引脚与地之间并联30pF的电容,以滤除总线上高频干扰。
SJAl000是PHILIPS公司生产符合CAN2.0B协议的协议转换器。它与82C250总线收发器组成通信接口,实现基于CAN总线的分布式网络数据传输。为提高CPU的效率,本设计中CAN控制器工作在中断模式,通过中断引脚向CPU发出中断请求,以完成对命令的解释与执行。
数字温度传感器DSl8B20用于组网测温;它是一线接口通信协议数字式温度传感器,其测温范围为-55℃~+125℃。分辨率为9~12位H1。它支持多点组网功能,连接时不需任何外围元件,电路结构简单。
4.3 外围电路硬件设计
4.3.1 数字温度传感器DS18B20
DS18B20是美国Dallas公司继DS1820之后推出的增强型单总线数字温度传感器。它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进。 4.3.1.1 DS18B20的特点
温度传感器DS18B20具有独特的一线接口,只需一条口线通信即可实现多点能力,简化了分布式温度传感器的应用。可以用数据总线供电,电压范围为3.0V~5.5V,无需备用电源。测量温度范围为-55℃~+125℃,在-10℃~+85℃范围的精度为±0.5℃。
DS18B20可编程器的分辨率为9~12位,温度转换为12位,最大值为750毫秒。它的电路设计原理图如4.5所示。
19
+5V321SD18B20
4.7K图4.5 DS18B20电路设计图
a.单线制接口方式,仅需要一根信号线与CPU连接,传送串行数据,不需要外部元件。
b.每个芯片有惟一的地址编码,多个DS18B20可以挂接在一根总线上,实现多点测温。
c.测温范围为-55~+125℃,分辨率为9~12位,可通过编程选择,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃的默认值12位,可实现高精度测温。
d.既可用数据线供电,也可用外部的电源(3.0~5.5V)供电。 4.3.1.2 DS18B20使用注意事项
a.根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM(只读存储器)指令,最后发送RAM(随机存储器)指令,这样才能对DS18B20进行预定的操作。由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则,将无法正确读取测温结果。
b.在DS18B20的单总线上所挂DS18B20数量超过8个时,需要解决微处理器的总线驱动问题,因此,在进行多点测温系统设计时要加以注意。
c.连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误;当将总线电缆改为屏蔽双绞线时,正常通信距离可达150m;当采用带屏蔽层且每米绞合次数更多的双绞线电缆时,正常通信距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的,因此,在用DS18B20进行长距离测温系统设计时,要充分考虑总线分布电容和阻抗匹配问题。
d.在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。在进行DS18B20硬件连接和软件设计时应予以重视。
20