采用ARM控制器的制动性能测试仪设计
硬件设计
本文引用地址://m.amcfsurvey.com/article/147857.htm![](http://m.amcfsurvey.com/editerupload/201308/fb09649d48bcd77fc75cc12cc86ba143.jpg)
测试仪的核心控制部件采用ST公司的32位的ARM芯片STM32F107VC,其工作频率达到72MHz,存储器包括256KB Flash存储器和64KB SRAM,外部设备包括2个12位ADC、4个通用16位定时器、2个I2C、3个SPI、2个I2S、5个USART、1个全速USB等[3]。
测试仪采用SD存储卡存储测试数据。SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制。而SPI方式采用4线制。SD方式比SPI方式数据传输速度更快,但由于仪表存储数据是在测试完成后进行,对存储速度的要求不高,而且ARM控制芯片上有现成的SPI接口,使用SPI方式控制更为方便,所以我们采用SPI方式的总线。
测试仪的USB接口有两个应用,一个应用是与GPS模块通信,此时仪表的USB接口工作于主机模式,向GPS模块提供5V电源。另一个应用是与电脑通信,此时USB接口工作于设备模式,电脑会把SD存储卡识别为一个可移动磁盘,上位机程序可通过读取磁盘文件的方式访问存放在SD存储卡中的数据。
电脑获取仪表中的测试数据还可以通过无线的方式,即使用无线通信模块把数据上传到电脑,无线通信模块使用Zigbee无线通信协议,Zigbee工作在2.4GHz免费频段,具有设备功耗低,网络容量大,传输距离远(1~1000米),数据安全性高等特点。无线通信模块与ARM控制芯片之间通过串口连接。
测试仪通过红外线接口控制微型热敏打印机打印测量数据。ARM控制芯片本身没有红外线驱动接口,所以需要外接红外编码/解码器芯片。红外编码/解码器芯片将串口数据信号按照一定的编码规则转换为驱动红外发光管的信号,对于编程者来说可看作直接通过串口控制打印机,而不需要了解编码转换的细节。
测试仪采用4.3吋,分辨率为272*480的触摸式液晶屏作为人机交互界面。界面内容、触摸设置等都被固化在触摸屏的Flash ROM中,不占用仪表主控制芯片的内存。ARM控制器对触摸屏的控制也是通过串口进行的。
软件设计
制动性能测试仪的软件设计基于μC/OS嵌入式操作系统,μC/OS是一个多任务的实时操作系统,它的工作原理是把程序分割为多个相对独立的任务,每个任务有自己的优先级,在操作系统的调度下运行。任务之间的通信通过信号量和消息邮箱方式实现[4]。
根据仪表的功能,我们把程序划分为不同的任务,各任务间的关系如图6所示,其中人机界面任务负责根据用户指令启动其它各项任务。
现以制动性能测试任务为例介绍测量任务的实现以及与人机界面任务之间的交互通信。图7是制动性能测试任务的工作流程图,在测量前首先进行传感器校准,然后由踏板开关启动测量过程,开始采样加速度传感器数据,在测量过程中需要保证采样时间间隔的精确和稳定,为了达到这一要求,我们利用定时器中断来触发A/D转换。数据计算主要根据积分近似计算原理。测量结束后通过文件系统把测量数据和结论存储到SD卡上。制动性能测试任务与人机界面任务的交互过程采用消息邮箱方式,如图8所示,其中OS_Mbox_Brake1、OS_Mbox_Brake2是消息邮箱名称。制动性能测量任务在校准过程完成后设置OS_Mbox_Brake1的值为字符A。在系统中运行的人机界面任务不断地读取该邮箱,当邮箱收到字符A后该任务控制触摸屏显示“准备”,然后设置OS_Mbox_Brake2的值为字符B,以通知制动性能测量任务进入测试准备状态。两个任务之间就是通过这种方式实现同步的。
![](http://m.amcfsurvey.com/editerupload/201308/1b7405fb30215fadbe0753864dc435d1.jpg)
评论