基于AT89C51单片机应用系统的串行通信设计
1 前 言
在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪。该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低。而且通用性好。
2 串行通信的硬件设计
串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
在所开发的系统中。红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在线工作组态,红外检测装置的工作组态的制订和选择是由上位PC机来完成的,这样,以单片机为核心组成的控制电路是数据的中转站,上位PC机下传红外测温仪的在线工作组态。在这里单片机与PC机的串行通信接口还是RS 232C的标准通信。AT89C51单片机仅有一个串口,这就要解决另一个串口外扩问题,系统利用的通用串行通信接口芯片8251A来扩展。该系统的串行通信的硬件电路如图1所示。
RS-232是EIA(EleCTRonICs Industries Association)电平。信号电平采用负逻辑,逻辑"1"=一12V,逻辑"0"=+12V。这与单片机的TTL信号电平不兼容,所以RS232C与89C51单片机的串口RXD(串行接收口)和TXD(串行发送口)不能直接连接,需要跨接一个转换器在RS232C与TTL电路之间进行电平转换。输出RS 232C电平。MC1489是接收RS 232C电平,输出TTL电平,该电平转换接口的不便之处是需要±12V工作电压,并且功耗较大。不适用于低功耗的系统。
在系统中,红外测温仪与PC机2个串行口,而89C51只有1个串口,利用可编程通用串行接口芯片8251A实现与上位Pc机通信,由于8251A串口芯片的片选端CS接到74LS138译码器的Y2。因此8251A的口地址为OA000H,RXCLK和TXCLK接收和发送时钟都连接51的T1口,利用T1作为波特率发生器[1]。
3 软件设计
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
主要特性:
·与MCS-51 兼
128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
红外测温仪的串口通过MAX232直接与89C15连接,所以红外扫描传感头按给定的扫描策略扫描电力设备,读入温度扫描信号,做最大值、最小值、平均值及异常剔除处理,单片机记录扫描时间和温度值,等待PC机命令。向PC机发送数据,发送数据流程如图2所示。红外传感器通过Pc机下传的在线工作组态控制检测电力设备的状态,其接收数据的流程如图3所示。单片机与PC机之间的串行通信通过825lA,所以在通信程序中首先对825lA进行初始化编程,设置串口通信方式,确定通信协议。这些是通信程序设计的关键点。
(1)串口的工作方式设置
通过对单片机的串口控制寄存器(SCON)的设置来完成,由于采用一帧11位的数据格式,所以89C51的串口的工作方式只能设置成方式2和方式3,数据传输的波特率有定时器控制,本系统采用方式3,单片机的串行接收的l帧数据中,奇偶校验位由SCON的TB8和RB8(第9位数据)来完成校验功能。
(2)串口波特率的设定
通过此公式的计算可以进一步验证在设计系统选用的晶振的频率为11.0592MHz时计算出来的T1初值没有误差。
(3)握手信号的规定
请求信号定为FFH、应答信号定为FEH、错误信号定为FDH、结束信号定为FCH。
(4)数据传送方式
利用RS 232C的2根传输线实现全双工的发送和接收数据。
(5)通信方式
异步通信方式,以字为单位传送数据,由于发送与接收双方使用各自的时钟,所以在异步通信中严格规定数据帧的格式。
(6)数据帧的格式
一帧数据为11位,包括起始位、数据
- 在应用可编程测控网络设计(03-15)
- 基于AT89C51单片机的微型可编程控制器(04-23)
- 基于AT89C51单片机的量程自切换频率计(01-25)
- 基于AT89C51单片机的十进制计算器系统设计(06-29)
- 基于单片机的智能计步器设计(09-20)
- 可编程逻辑器件与单片机在双控制器中的设计(06-04)