打印
[STM32F3]

在Cortex-M3上实现基于μC/OS-Ⅱ和CAN总线的实时数据采集系统

[复制链接]
599|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jk0112|  楼主 | 2020-11-2 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前,数据采集系统在工程建设、科研、控制等多个领域应用广泛,而且很多领域对系统的实时性和处理速度要求很高,但系统成本上又控制得很严格。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-Ⅱ操作系统进行管理。

使用特权

评论回复
沙发
gejigeji521| | 2020-11-2 23:34 | 只看该作者
可以多任务了。

使用特权

评论回复
板凳
598330983| | 2020-11-2 23:50 | 只看该作者
多线程嘛

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

248

主题

544

帖子

2

粉丝