串口通讯在CCD相机系统中的应用
CCD相机系统在运行过程中,有许多来自工作现场的数据需要实时采集,处理和记录。以便上级管理系统及时掌握相机的工作状态。并且上级管理系统需要实时调整相机参数,并发出相应的指令,使得相机采集到的图像像质更好。
MCS-51单片机内部含有一个可编程全双工串行通信接口,该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。MCS-51单片机串行口的结构由串行口控制寄存器、发送和接收电路等三部分组成。
串行通信是一种能把二进制数据按位传送的通信,故它所需传输线条数极少,特别适用于分级、分层和分布式控制系统以及远程通信之中[1]。根据实际使用的需要,CCD相机系统与上级管理系统之间的通讯由单片机串口来完成。本文对该系统中的串行通信系统加以介绍。
2系统串行通讯体系
按照串行数据的同步方式,串行通信可以分为同步通信和异步通信两类。本系统采用同步通信方式。数据的输入和输出接口有各自的时钟来控制,这两个时钟源彼此独立,互不同步[1]。
由于CCD相机系统的数据输入和数据输出不会在同一时刻进行,本系统的串行通讯体系结构包含以下几个部分:单片机小系统,串行数据输入模块,串行数据输出模块。其中单片机小系统结构简单,性能成熟,在这里不再赘述。现就串口输入、串口输出模块做出说明:
2.1串行数据输入模块
相机参数的注入由上级管理系统负责,CCD相机系统通过数据总线将参数直接读入相机系统中的单片机小系统。
数据输入门控信号通过单片机P1口连接。当上级管理系统欲向CCD相机系统注入调整参数指令时,先使门控信号有效,单片机系统即准备好接收数据;然后在时钟信号的配合下,一位一位地读入数据,并通过数据总线将并行数据读入单片机。
2.2串行数据输出模块
在每个间隔时间到来时,CCD相机系统向上级数据管理系统送出相机系统的参数,以备检查相机系统的状态是否正常。电路设计如图1。在方式0下,串行数据输出电路通过几个串入并出的移位寄存器,由MCS-51单片机的RxD线串行输出数据,并从移位寄存器的最高位串行输出。
3系统的串口通讯协议
3.1系统串口通讯协议特点
由于传输距离和可靠性的要求,该通讯协议具备如下特点[2]:
(1)采用一对一的通讯方式,无握手过程。通讯中,上级管理系统为主站,CCD相机系统为从站;
(2) 为了有效地识别相机参数。针对各项指令参数设定了各自的命令代码,但帧长度保持不变。
(3)由于校验编码是差错检测的核心,对提高数据传输的可靠性非常重要,且奇偶校验方式简单可行,故采用奇偶校验方式保证数据传送的准确性;
4系统串口通讯软件实现
4.1通讯协议格式说明
以下对本系统的具体通讯协议格式进行说明。该协议的数据包结构大体如下所示:
(1)帧头
为了准确发送和接收串口数据.将帧头设定为OxAA(10101010)。
(2)命令代码
在本系统的通讯协议中,针对各项指令参数设定了各自的命令代码,这里不作具体描述。
(3)数据代码
数据代码紧跟在命令代码之后,用户可根据情况取5位、6位、7位或8位、低位在前高位在后。
(4)奇偶校验位
奇偶校验这一字节是按照通常的通讯协议标准来计算的。即:一帧数据除帧头外其它字节的累加和[3-4]。
4.2串口通讯的波特率
波特率是每秒钟传送二进制数码的位数,单位是bps(bit per second),即位/秒。波特率是串行通信的重要指标,用于表征数据传输的速度。波特率越高,数据传输速度越快。
通信的数据传输速率较高,通常可达56000bps或更高。但同步通信的缺点是要求发送时钟和接收时钟保持严格同步。
4.3串口通讯软件流程图
在充分了解用户需求的基础上,首先确定系统结构,进而确定软件开发平台和工具,采用自顶向下、逐步求精的设计方法划分软件的功能模块和功能单元,可提高软件开发的效率。
本系统使用串口的方式0,用汇编语言编程。软件流程图(只包含串口通讯子程序)如图2所示。
5结束语
用汇编语言进行编程是实现串口通讯的一种较可靠的方式。本通讯模块设计了具有自身特点的串口通讯协议,有效解决了数据管理系统与CCD相机系统间的通讯问题。已经成功应用于某CCD相机系统。本设计对其他类型的串行通讯体系有一定的推广和应用价值。
本文作者创新点:利用单片机串口,设计成串入并出的数据输入口和串入串出的数据输出口,硬件结构简单,性能可靠;使用在通讯中较少使用的串口方式0进行通讯设计。