1 引言
计算机控制系统中经常采用多机系统进行通信,在由PC机和单片机构成的分布式控制系统中,往往以PC机为上位机完成较为复杂的数据处理和对前沿机的监督管理,以及对下位机进行多机协调,单片机主要执行上位机的命令,对来自微机串行口的命令进行操作,完成对被控对象的直接控制,并把被控对象的信息上报给上位机,异步串行通信是一种常用的多机通信手段,本文介绍一种将RS232,RS485,及红外接口集成在一起的PC机--单片机多功能通讯实验板,用于实现PC机与单片机间的串口通信、红外通信及PC机与PC机间的通讯实验。
2 实验板的组成原理与设计
2.1 串行通信
串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线
,以每次一个二进制位移动的,他的优点是只需一对传输线进行传送信息,因此其成本低,适用于远距离通信,他的缺点是传送速度低,串行通信有异步通行和同步通信两种基本通信方式,同步通信适用于传送速度高的情况,其硬件复杂,而异步通信应用于传送速度在50-19200波特之间,是比较常用的传送方式,在异步通信中,数据是一帧一帧传送的,每一串行帧的数据格式由1位起始位,5-8位的数据位,1位的奇偶校验位(可省略)和1位停止位4部分组成,在串行通信前,发送方和接收方要约定具体的数据格式和波特率(通信协议)。
2.2 AT89C51微控制器
AT89C51单片机系统具有设计简单、性能可靠、功耗低等优点,它为用户预留下足够的软硬件资源,可供用户进行再开发应用,该系统除内部已有的4K FLASH存储器外,还可以扩展选址64K ROM区和64K RAM区,供用户使用,用户在系统开发时,可以将自己的数据块和程序段、数据表,以若干控制子程序、数据块形式存放于AT89C51单片机的扩展ROM或RAM区中,以便系统工作时重复使用和反复调用。
2.3 RS232C通信接口
RS232C是一种电压型总线标准,可用于设计计算机接口与终端或外设之间的连接,以不同的极性的电压表示逻辑值。-3~-25V表示逻辑"1"。+3~+25V表示逻辑"0"。其电平与TTL和CMOS电平是不同的,所以在通信时必须进行电平转换。
2.4MAX232芯片
MAXIM公司的MAX232/MAX232A接收/发送器是MAXIM公司特别为满足EIA/TEA2232E的标准而设计的,他们在EIA/TIA2232E标准串行通信接口中日益得到广泛的应用,他们具有功耗低、工作电源为单电源、外接电容仅为0.1μF或1μF,采用双列直插封装形式、接收器输出为三态TTL/CMOS等优越性,为双组RS 232接收发送器,工作电源为+5V,波特率高,仅需外接0.1μF或1μF的电容,其价格低,可在一般需要串行通信的系统中使用,MAX232外围需要4个电解电容,是内部电源转换所需电容,其取值均为1μF/25V宜选用钽电容并且应尽量靠近芯片。如图1所示。
2.5红外发送、接收电路
红外通讯以红外线作为通讯载体,通过红外光在空中的传播来传输数据,他由红外发射器和红外接收器来完成,在发射端,发送的数字信号经过适当的调制编码后,送入电光变换电路,经红外发射管转变为红外脉冲发射到空中;在接收端,红外接收器对接收到的红外光脉冲进行光电变换,解调译码后恢复出原信号。
红外发送电路中采用的红外发射器件是塑封的TSAL6200红外发射二极管,他将周期的电信号转变成一定频率的红外光信号,他是一种时断时续的高频红外脉冲信号,但脉冲串时间长度是恒定的,根据脉冲串之间的间隔大小,表示传输的是数据"0"还是"1"。红外接收器对接收到的红外光脉冲进行光电变换,解调译码后恢复出原信号。红外载波为频率38KHz的方波,采用脉宽调制PWM方式发送,通过待发送二进制数据的"0"或"1"控制两个脉冲串之间的时间间隔,即PWM的占空比。
红外载波可以使用单片机内部的定时器的PWM功能实现,也可以通过外围硬件电路实现,红外接收采用HS0038B红外接收器,当接收收到38KHz的载波信号时,HS0038B接收器会输出低电平,否则输出高电平,从而可以将"时断时续"的红外光信号解调成一定周期的连续方波信号,经单片机处理,便可以恢复出原数据信号。
2.6 设计思路
本实验板选用的ATMEL公司的AT89C51单片机为核心,RS232C接口选用9芯接头,电平转换芯片选用MAX232A,用来实现232电平与TTL电平的转换,RS485接口芯片选用65LBC184,他使用单一电源,电压在+3
~+5.5V范围内都能正常工作,能完成TTL与RS485电平之间的转换,红外发送电路中采用的红外发射器件是红外发射二极管,他将周期的电信号转变成一定频率的红外光信号。
红外接收芯片HS0038B是能够接收红外信号的小型化接收器,通过外围的自激振荡电路产生38KHz的载波频率。为了及时显示各接口发送、接收数据的状态,在实验板上还设置了状态显示电路,由接口信号通过放大电路驱动相应发光二极管,例如,当232芯片接收到PC机的数据时,232芯片的接收端会使相应的二极管闪烁,红外发送电路在发送数据时,其相应的发光管也会及时闪烁,而PC机上的串口通信程序使用一个叫做串口助手的程序,他可以设置串口,波特率,并发送/接收串口数据,故本文只介绍单片机部分的通信程序。
2.7 单片机软件设计
在实验板上还集成了51单片机来组成最小控制系统,所选用的AT51单片机的串口有4种工作方式,用于多机异步通信时选用方式2或方式3,数据帧格式为:1位起始位,8位数据位,1位停止位,进行串行通信前要对串口进行初始化,设置波特率和串行口工作模式,设定单片机的地址码为F1H1,在传送数据前先联络地址码,如地址码正确则传送数据,否则继续联络地址码,数据的通信采用累加和校验的方法,即每传送一组数据(个数自定,设为100个),校验一次累加和是否正确,正确则回送00H,否则回送FFH1,通信可以由中断传送方式和查询方式,本文采用查询方式,选择波特率为1200b/s,定时器T1作为波特率发生器,选用晶振为12MHz,定时器T1工作于模式2,定时器初值为0E6H,AT89C51单片机的通信程序框图如图2。
2.8 通讯实验示例
实验1 利用RS232接口及MAX232电平转换芯片来实现PC机与单片机的串口通信。
实验2 首先通过RS232接口将PC机1与实验板1连接,将232电平转换为TTL电平,然后通过RS485接口把TTL电平转换为485电平并连接到实验板2上,再通过RS232实现与PC机2的串口通信。
实验3 通过RS232接口将PC机1与实验板1连接,将232电平转换为TTL电平,然后通过红外发送电路将信号无线传送到实验板2上,再通过安装在实验板2上的RS232接口与PC机2完成通信。
3 结语
本文利用RS232,RS485接口芯片,红外发送/接收电路设计了PC机与单片机及PC机之间的通讯实验板,该系统硬件结构简单,功能可靠,硬件与软件均调试通过,在实际现场的应用中具有一定的实用价值,对于为了解并掌握多机间串行通信,红外通信的初学者是一个理想的实验工具.