O 引言
单片机与PC机串行通信,又称为下位机与上位机的串行通信。采用这种通信方式,可以解决工况条件差对工作人员带来的危害,又可以实现实时在线远距离集中监控,对工作现场分散的单片机采用控制平台管理,既可以改善工作条件,又可以提高工作效率。本文针对串行通信的电路设计和程序设计做出了具体的阐述。
1 电路设计
通信接口标准有RS232、RS423A、RS422A、RS485等,常用的接口标准有RS232和RS485。RS232在微机串行通信接口中广泛采用,在加装了调制解调器(modem)的情况下,这种通信可以通过电话线传输数据,并且可以传输几千公里远的距离,如果没有modem可以传输十几米远。本课题采用的是RS-232直连无modem方式和DB-9连接器,单片机采用 AT89S52,使单片机的串行输入端(RXD)和串行输出端(TXD)与PC机的COM口相连接。
RS232是用正负电压来表示逻辑状态,与TTL高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口相连或TTL器件相连,必须在RS232与 TTL之间进行电平和逻辑关系的变换。实现这种变换的方法可以用单立元件,也可以用集成芯片,本文采用MAX232来完成TTL-EIA(美国电子工业联合会)双向电平转换。MAX232内部有电压倍增电路和转换电路,仅需+5 V电源便可工作,使用十分方便,其与AT89S52连接时可以采用最简单的方式连接(见图1),MAX232的T1 IN引脚与89S52的串行输入口线P3.1TXD相连,R1 OUT引脚与89S52的串行输入口线P3.0RXD相连,MAX232的T1 OUT、R1 IN分别于与RS232的2、3引脚相连。MAX232泵电源引脚必须接0.1μf电容,如图中的C26、C27、C28、C29。
因为电路中采用了电平转换芯片,只需把单片机所用到的连接器和PC机串口所用的连接器的2、3、5管脚对应连接起来,2、3管脚不需交叉连接(如图2所示);如果是PC机之间或同一个PC机的两个COM口相连,则两个连接器的2、3管脚需交叉相连。
2 程序设计
主程序的设计是:AT89S52单片机采用定时器1,工作于方式2,11.059 MHz的晶振,波特率为9 600 Hz,时间常数是FDH,由单片机先向PC机发送十六进制的联络信号“aaH”,PC机接收正确时回答BBH,以数组adr[]的和作为校验和, 测试 正常时发送数组tri[]。完整程序代码如下:
上下位机间通信是否正常可以通过上位机安装的串口调试软件实现,上述程序经过调试软件调试后运行正常。