基于C8051的大灯仪自动定位系统
软件设计
本系统的软件设计中采用了uC/OS-II操作系统。 并选用了最新的KEIL7.50集成开发环境来开发程序。
通过在系统中嵌入uC/OS-II,可以把整个程序分成许多任务,每个任务相对独立,即使一个任务发生问题,也不会影响其他任务的运行。这样既提高了系统的可靠性,同时也使调试程序变得容易。
任务的创建
根据大灯仪定位过程中不同阶段所要实现的目标,软件设计中划分了主任务、自动测试任务、位置控制任务、立柱找光任务、PSD找光任务、PC通讯任务、检测通讯任务、电机制动任务和I2C显示任务。
每个任务都有自己的名称、内存空间和优先级。优先级的设置根据不同的系统有不同的设定,本设计中,电机制动任务在系统中起保护设备的作用,如果发生控制失效的情况下不能及时制动电机可能会对大灯仪造成损坏,所以其优先级设为最高; PSD找光任务和立柱找光任务运行较为频繁,任务执行的好坏直接关系到检测结果的准确度,优先级分别设为第二级和第三级;其余的任务均是常规运行状态,只是实现人机交互、显示状态和参数,对检测性能没有直接影响,优先级的设定没有严格的高低之分,可以随意设定。
系统运行过程分析
系统运行的首要环节为初始化, 包括两部分: 第一部分是系统及硬件部分的初始化,创建主任务;第二部分是创建信号量及建立功能任务,并为之分配优先权。
系统初始化后,首先从主任务开始运行,此时各功能任务均处于就绪状态。上电后检测人员在PC机上发送检测指令,此时最先响应的功能任务是PC通讯任务。系统利用中断接收PC机下达的指令,并根据指令内容发送开始自动检测的标记量。主任务接收到自动检测标记后唤醒自动检测任务,同时发送显示信号量唤醒I2C显示任务。进入自动检测任务后,系统根据检测的进程在不同的检测阶段调用不同的功能任务。检测项目完成后,大灯仪自动回到起始位置,等待下一次检测命令。
结语
本文中的大灯仪自动定位系统充分利用了C8051F020单片机优越性能,使控制系统达到了很好的集成,降低了设计成本。同时实践表明, 在系统复杂、对实时性和精度要求比较严格,并且需要并行处理任务较多的运动控制系统中使用?C/OS-II实时操作系统,会加快嵌入式控制系统的开发速度,降低软件编写的复杂度,提高产品的开发效率,并使维护和功能扩展都非常方便。经在山东某汽车检测站为期半个月的系统实际运行证明,该系统灯光定位准确,响应速度快,运行良好。
- 单片机控制的步进电机自动定位系统(11-03)
- 电缆故障自动定位系统的设计与实现(04-11)
- 利用80C552构成的噪声测量自动定位装置的(09-16)
- 在uclinux下实现拨号(04-21)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- uClinux进程调度器的实现分析(04-13)