微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于uC/OS的嵌入式系统通信接口设计

基于uC/OS的嵌入式系统通信接口设计

时间:07-15 来源:互联网 点击:

1 引言

随着微电子技术的不断创新和发展,嵌入式系统已经广泛渗透到科学和技术的各个领域,如:工程设计、数码产品、国防军事、自动化控制领域。嵌入式系统是指将应用程序、操作系统与计算机硬件集成在一起的系统。它以应用为中心、以计算机技术为基础,而且软硬件可以裁剪,因而是能满足应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统。

常用的主机与嵌入式外设的通信接口有RS232、USB、1394及10/100M以太网等接口。RS232接口被广泛用于不同速度设备与主机通信,有使用广泛,驱动程序丰富,可靠性好等优点。

本文以一个已开发成功的手持嵌入式仪器的RS232通信接口作为实例,详细说明了上位机和下位机通信程序的开发原理和过程,对类似的开发有很大的借鉴意义。

2 嵌入式通信系统结构

嵌入式处理器有许多种流行的处理器核,本文采用Piliphs公司的LPC2210,它是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。

由于LPC2210的144脚封装、极低的功耗、多个32位定时器、8路10位ADC、PWM输出以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和电子收款机(POS)。通过配置总线,LPC2210最多可提供76个GPIO。由于内置了宽范围的串行通信接口,LPC2210也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用。更详细的资料见参考文献[1]

500)this.style.width=500;" border=0>

3、嵌入式实时操作系统μC/OS-II的移植

对于大多数手持嵌入式仪器而言,采用公开源码的操作系统μC/OS-II是最好的选择,μC/OS-II是一个完整、可移植、可固化及可裁减占先实时多任务内核。代码简洁经典,可靠性高。

μC/OS-II可以大致分为内核、任务处理、时间处理、任务同步与通信、与CPU的接口等五部分。内核(OSCore.c)是操作系统的处理核心,包括操作系统初始化、系统运行、中断处理、时钟节拍、任务调度和事件处理等多任务。任务处理部分(OSTask.c)是与任务操作密切相关的,包括任务的建立、删除、挂起、恢复等。时钟部分(OSTime.c)定义μC/OS-II的最小时钟单位是Timetick(时钟节拍)。任务同步和通信部分包括信号邮箱、邮箱队列和时间 标志等部分,主要用于任务间的互相联系和对临界资源的访问。与CPU接口部分是指μC/OS-II针对所使用的CPU的移植部分,主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断和相关处理部分等内容。

μC/OS-II除了良好的稳定性和安全性以外,很重要的特点就是对多任务管理的优异表现。μC/OS-II可以管理多达64个任务。除了8个μC/OS-II自用的任务以外,用户的应用程序最多可有56个任务。用户可以通过系统提供的任务结构来自行创立任务。更详细的资料见参考文献[4]。

本实例就是通过创建通信任务来实现下位机的通信。代码如下:

/* 创建任务receive */

OSTaskCreate(TaskUart0Recieve, (void *)0,TaskComStk[TaskStkLengh - 1], 20 );

4 嵌入式RS232通信软件设计

软件部分的设计包括上、下位机通信协议的制订、上位机程序和单片机程序的编写。其中上位机程序以Visual BASIC为开发工具,单片机程序用ANSIC C编写。

4.1 上位机与下位机通信协议的制订

上位机与下位机之间的数据交换必须遵循一定的通信协议,通信双方才能按照该协议解析所传输的数据。就本设计而言,规定串口数据帧为1起始位,8个数据位,1个停止位,无奇偶校验位,波特率为115200bps。

为了实现大文件的传送,我们将文件切成块,以二进制方式传送,这样就使得任意大小的文件都可传送,并且对系统的资源消耗最小。所制订的通信协议为:

帧头为6个字节,具体规定如下:

a.消息帧数据格式: 1 0 A B X X ,其中 10 为消息标识, AB表示文本长度, L=A*100+B, XX为配位字符,可以是任意值。

b.控制帧数据格式: 0 1 A B M N ,其中 01为控制标识, AB为请求标识, MN为附加标识, 11表示请求对方接收文件, M表示描述字串中文件名子串的长度, N表示描述字串中文件大小子串的长度, 10通知对方放弃传输, 00通知文件传输完毕, 01请求对方发送数据, MN为10请求发送下一个, MN为00请求重发。

c.数据帧数据格式: 0 0 A B M N, 其中 00 为数据标识,, AB表示数据长度,L=A*100+B, MN为校验,M*100+N=A+B。

前导帧使通信双方保持同步,当PC机发送数据时,先将请求对方接收控制帧给下位机,收到应答帧后开始传送;当PC机接收数

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top