基于嵌入式实时操作系统的动态数显倾角仪
MEMS 加速度传感器作为当前最先进的倾角测量技术 ,已经在倾角测量领域逐渐得到广泛的应用,它体积小、重量轻、功耗低、启动快、成本低、可靠性高、易于实现数字化和智能化。 本文在 LPC2220 硬件平台上开发出基于 μC/OS-II 的数字输出数显倾角仪。
1 硬件实现方法
本系统采用 PHILIPS 公司的 LPC2220 处理器作为主控芯片,并将硬件电路分成两部分,一部分是主控模块;另一部分是数据处理模块,系统原理图如图 1。 主控模块主要包括系统控制芯片电路、串口电路、键盘、LCD。 数据处理模块主要包括两路外部中断、1 路 AD 输入和温度信号处理电路。
2 μC / OS-Ⅱ下多任务程序的设计
程序的开始通过一些宏定义对 μC/OS-Ⅱ运行环境相关的一些配置参数和传感器参数做了设置。 主程序中负责键盘、数字接口、LCD、串口、传感器和实时多任务操作系统的初始化,建立任务,为其分配优先级,激活各任务将其置为就绪态。 然后在系统内核 RTOS 的调度下, 各个任务按照优先级的不同依次投入运行,任务运行结构如图 2 所示。
2.1 系统初始化
本文参考 http:/ /www.micrium.com 中的内容,将下载的源代码在 MDK-ARM 开发环境下做了针对 LPC2220 的移植。 嵌入式实时操作系统的多任务初始化是在 main () 主函数中进行的,main()函数首先调用 ARMInit()初始化 LPC2220,然后调用OSInit()函数初始化 μC / OS-II,调用 MYTask()初始化 LCD 显示界面并创建多任务,最后调用 OSStart()启动多任务调度机制。 主函数源程序如下:
函数 ARMInit()负责初始化 LPC2220 串口、USB、ADC、外部中断、SPI、 定时器等。 μC/OS-Ⅱ需要用户提供周期性信号源,用于实现时间延时和确认超时。 定时器 0 作为 μC/OS-Ⅱ的时钟节拍器将时钟设置成 20Hz,在调用 OSStart()后开启。函数 MYTask()初始化了人机交互界面,并在建立多任务并分配好任务优先级之后进行自删除,其代码如下:
2.2 人机交互任务
人机交互任务用来进行人机交互,它的优先级最高,用来判断当前所需要进行的工作。 该任务用来唤醒用户需要的工作所对应的任务,如暂停任务、用户自校准任务、数字数据输出任务等。 人机交互任务首先建立一个邮箱,该邮箱包含指向键盘信息的指针。 然后,人机交互任务等待键盘中断服务子程序向该任务发送到邮箱中的键盘信息。 最后人机交互任务根据键盘信息唤醒相应任务。 相应代码如下:
2.3 模拟量输入与误差处理任务
相关文章
- 2023-02-15试论测量仪器新概念——测量仪器云
- 2024-01-30矩形柱二维尾流的稳定性研究
- 2024-07-24不规则波折射物理模型试验研究
- 2024-11-04含损伤缺陷的大型钢结构架极限承载预测方法研究
- 2024-09-12吸附除湿固定床结构的实验研究与性能分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。