3通讯程序设计
ARM与单片机的并口通讯程序包括两方面:一方面是作为上位机的ARM的并口通讯程序kali linux,另一方面是作为下位机的单片机的并口通讯程序。在通讯之前必须制订合理的通讯合同以保证通讯的可靠性和成功率。现约定双方通讯合同如下:
(1)码率为9600bit/s,帧格式为1-8-N-1(1位起始位,8位数据位,无奇偶校准,1位停止位);(2)因为上位机ARM的速率远远低于下位机单片机的速率,所以采用上位机主动联络linux c 编写通讯软件,下位机等待的形式。在数据传送前ARM先发送联络讯号/0xaa,单片机收到后回答一个/0xbb,表示可以发送,否则继续联络;(3)单片机端可以有中断和查询方法收发并口数据。本文采用中断形式;(4)ARM处理器s3c2440采用UART1和单片机通讯,UART0则作为s3c2440终端控制台。
3.1上位机ARM的通讯程序设计
因为s3c2440移植了订制和剪裁后的Linux2.6.32内核的操作系统,对并口的操作采用上述的Linux下并口操作方式,程序流程图如图2所示。
3.2下位机单片机的通讯程序设计
选用C8051F021的定时器T1作为码率发生器linux系统界面,晶振采用11.0592MHz,定时器工作在形式2linux c 编写通讯软件,计数年率为0xfd,并口工作在串行方法1(1-8-N-1),采用中断形式收发数据。
4结束语
随着近些年来嵌入式Linux在国外的应用范围日渐壮大,基于ARM平台的嵌入式Linux设备也将会越来越多地用在数据采集中作为上位机对数据进行处理、显示、存储、发送。本文所介绍方案适用于大多数场合Linux下ARM和单片机的并口通讯设计,设计人员只需依照自己的实际须要更改或重新制订通讯合同即可。另外须要注意的是因为上位机ARM的速率比单片机快好多,所以一次不能发送过多的数据,否则极有可能使发送缓冲区溢出而出现数据遗失的现象,开发人员要按照通讯双方设备的状况选择合适的帧宽度,以达到最佳的传输状态。