目前,数据采集系统在工程建设、科研、控制等多个领域应用广泛,而且很多领域对系统的实时性和处理速度要求很高,但系统成本上又控制得很严格。ARM公司的Cortex-M3内核正好符合这些需求,本文就是在一款Cortex-M3处理器上实现了实时数据采集系统。本系统采用了集成Cortex-M3内核的STM32F103VC芯片,对外部模拟信号的数据采集,然后对采集到的数据进行滤波处理,最终通过CAN总线通信传输到另一个开发板上进行处理。STM32F103VC芯片基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,具有高集成度和易开发的特点。STM32F103VC芯片上集成了基本扩展控制区域网络(bxCAN)控制器,外加一个TI公司的SN65HVD230作为收发器,实现CAN总线通信。由于现在的数据采集系统不断的复杂化,由一个无限循环构成的应用程序已不能满足。本文采用了μC/OS-Ⅱ实时嵌入式操作系统对数据采集任务进行管理。μC/OS-Ⅱ在实时性方面的性能非常优越,而且没有开发成本的压力。关于μC/OS-Ⅱ操作系统,本文详细阐述了μC/OS-Ⅱ实时操作系统在STM32F103VC芯片上移植的过程,每个文件代码的修改。在软件方面,分别阐述了数据采集的ADC模块和实时通信的CAN总线的开发、设计和扩展。ADC模块采用了STM32F103VC芯片集成的片内模拟/数字转换器(ADC),通过DMA模式传输数据,减少对CPU资源的使用,充分发挥Cortex-M3芯片在实时性上的性能。并且采集到的数据首先会进行滤波处理,本文使用的是中位值平均滤波法。CAN总线模块方面,STM32F103VC芯片上集成的总线通信接口(bxCAN),它支持CAN协议2.0A和2.0B,与现行的CAN2.0B标准接口完全兼容。本文给出了CAN总线的初始化、波特率的设置、过滤器的设置以及发送报文的详细代码设计。ADC模块和CAN总线模块都是由μC/OS-Ⅱ操作系统进行管理。
|