嵌入式实时操作系统μC/OS-II串口通信的设计与实现
摘要:为解决实时操作系统μC/OS-II串口通信设计中信号量、消息邮箱使用方法的问题,提出了一种以STM32V评估板为硬件平台和μC/OS-Ⅱ的串口通信程序设计方案。该方案采用Cortex-M3架构的ARM处理器STM32F103VB作为主控制芯片,ST3232作为串口通信电平转换器。软件设计部分描述了信号量、消息邮箱的应用场合和基本操作方法,通过信号量和消息邮箱的配合使用保证任务间的数据传输的同步性。给出了整个程序中的设计思路,程序开发使用STM32F103VB处理器自带的固件库,减少了繁琐的寄存器配置,降低了程序开发强度。实验验证了在2种不用通信速率下数据传输具有误码率低、传输稳定可靠的特点,并且若能够配合相应的数据校验算法就可将其应用于工业现场的数据通信。
关键词:实时操作系统;μC/OS-II;信号量;消息邮箱;串口通信;STM32F103VB;ST3232
ARM是目前嵌入式领域中应用最广泛的RISC微处理器结构,以低成本、低功耗、高性能的特点占据了嵌入式系统应用领域的领先地位,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。STM32F103VB是基于ARM新内核Cortex-M3的通用微处理器,STM32V评估板是基于该芯片的学习板并集成了仿真调试器(Ulink_Me),可以方便用户快速学习和开发用户程序。目前常见的嵌入式系统有:WinCE、Linux、pSoS、VxWorks和μC/OS-II等。μC/OS-Ⅱ是专门为嵌入式系统应用设计的,具有源码公开、实时性好、可移植裁剪、高效稳定和教学科研免费使用等特点,已经成功移植到8、16、32和64位等多种微处理器上,广泛应用于照相摄影、医疗器械、音响设备、工业机器人控制、发动机控制、航空器、高速公路电话系统、自动提款机等众多领域。这里以STM32V评估板为硬件开发平台,结合μC/OS-II嵌入式操作系统,设计了基于信号量、消息邮箱的串口通信应用程序。
1 信号量、消息邮箱
μC/OS-II由事件(Event)驱动,一般事件包括信号量(Semaphores)、互斥信号量(Mutex semaphores)、消息邮箱(Message Mail boxes)、消息队列(Message Query)、事件标志组(Event Flag Group)等。其中信号量和消息邮箱作为一种常见的通信机制,在数据通信过程中应用最为广泛。
1.1 信号量(Semaphores)
μC/OS-II的信号量由2部分组成:一个是信号的计数值(0~65 535);另一个是由等待该信号量的任务组成的等待任务列表。信号量可用于以下场合:允许一个任务与其他任务或中断同步;取得共享资源的使用权(满足互斥条件);标志事件的发生。
对信号量一般可以实施以下3种操作:初始化(INITIALIZE)信号量或者称为创建信号量(CREATE);等待信号量(WAIT)或者称为挂起信号量(PEND);发送信号量(POST)。
信号量在初始化过程中需要给信号量赋初值,等待信号量的任务表(WAWING LIST)应清为空。信号量的使用需要调用相应的函数并配置其相关的宏定义,具体如表1所示。
1.2 消息邮箱(Message Mail boxes)
消息邮箱能使任务或中断服务向另外一个任务发送一个指针型的变量,这个指针指向一个包含指定“消息”的数据结构。消息邮箱发送的不是消息本身,而是消息的地址指针。
消息邮箱可用于通知一个事件发生或作为二值信号量使用。消息邮箱的工作原理是邮箱在初始化时建立一个等待消息的任务列表,当邮箱为空时,等待消息的任务就挂起,并且被加入到等待消息的任务列表中。当邮箱收到消息时,等待任务列表中优先级最高的任务或者最先等待消息的任务得到消息,且转入就绪并从任务列表中清除。
对消息邮箱的操作一般有3种:邮箱初始化(INITIALIZE),或者称为建立邮箱(CREATE);发送消息给邮箱(POST);等待消息进入邮箱(PE-ND);无等待请求邮箱消息(ACCEFT)。
消息邮箱的使用需要调用相应的函数并配置其相关的宏定义,具体如表2所示。
2 硬件开发设计
2.1 硬件开发平台
以STM32V评估板为硬件开发平台,该评估板采用ST公司32位ARM微处理器STM32F103VB,该芯片最大时钟频率72 MHz,内置大容量存储器包括128 KB的高速Flash和20 K的SRAM,丰富的外设接口:80个高速I/O接口,3个USART,2个I2C,2个SPI,7通道的DMA,RTC等。STM32V开发板将这些外设接口全部引出,自带LCD液晶显示并集成调试工具,用户可方便设计、调试和查看程序运行结果等。评估板功能模块组成如图1所示,主要包括以下部分:模拟输入信号部分、跳线配置、USB电源供给、液晶显示、串口通信、CAN通信、复位/输入按钮、LED显示和SD卡存储。
2.2 通信电路
计算机与外界的信息交换称为通信。通信基本方式分为串行通信和并行通信两种。串行通信是指一个数据是逐位顺序传送的通信方式,串行通信有同步和异步两种基本的通信方式。
其中,同步通信是通过同步时钟来实现发送和接收数据的同步。而异步通信规定了字符数据的传送格式,即每个数据以相同的帧格式传送。每一帧信息由起始位、数据位、奇偶校验位和停止位组成。依据起始位在每个字符数据开始时使发送和接收同步,停止位则作为字符结束的标志。
PC机的串行通信接口采用的是EIA RS-232E标准串行通信协议。在本设计中,主控芯片STM32F103VB的接口采用TTL电平,规定0~0.8 V为“0”电平,2~5V为“1”电平,它不能直接与PC机标准串行通信接口连接,必须设计TTL电平到RS-232协议电平信号的转换电路。串口RS-232电平与STM32F103VB微处理器TTL电平转换由开发板上的ST3232完成,接口电路如图2所示。
通信 设计 实现 串口 OS-II 实时 操作系统 嵌入式 相关文章:
- 无线通信领域中的模拟技术发展趋势(蜂窝基站)(09-22)
- 新一代移动通信系统及无线传输关键技术(06-19)
- 蜂窝移动通信基站电磁辐射对人体影响的探讨(04-10)
- 无线升级到802.11n 应考虑的因素有哪些?(10-30)
- 第四代移动通信系统中的多天线技术(08-05)
- 4G移动通信系统研究进展与关键技术(12-24)