信号机功能比较简单时并不需要使用操作系统,而只是运行一个控制循环程序,利用中断来处理发生的事件,这样的程序结构比较凌乱,难以维护和升级,功能也受限。下面具体的由卓跃教育为您介绍。 现代智能信号机功能发展需要同时运行多个任务,如信号灯控制、通讯、车流量检测等,这就需要对多任务进行合理的调度,另外信号机接收和处理的信息、数据的增多,尤其是需要大量保存历史车流量数据提供给信号灯控制模型计算和中心查询使用,单靠表或数组来管理是复杂而低效的,因此文件管理也是必不可少的一项功能。 嵌入式Linux是一款优秀的嵌入式操作系统,它采用微内核体系结构,这使得内核小巧而可靠,易于ROM固化,可模块化扩展,支持多种文件系统,并直接提供完善的网络支持。本文选用µClinux作为嵌入式操作系统,µClinux是专门针对没有MMU的CPU,为嵌入式系统做了许多小型化的工作,目前支持包括S3C44B0X等微处理器。µClinux采用一种平板式(Flat)的内存模型来去除对MMU的依赖,改变了用户程序的加载方式,开发了运行于µClinux的C函数库(µCLibc)。µClinux内核可完成进程管理、内存管理、文件系统、设备控制、网络实现等功能,内核采用模块化设计,许多功能块可以独立的加上和卸下,我们在设计内核时把这些内核模块作为可选的选项,可以在编译系统内核时指定,对内核重新编译时,选择嵌入式设备所需要的功能模块,删除冗余的功能模块,通过对内核的重新配置,可以使系统运行所需要的内核显著减小,从而缩减资源使用量,使系统运行所需硬件资源显著减少。 交通信号机应用软件由3个通信协议模块和5个算法模块构成。3个通信协议模块是:控制中心通讯协议、串口通信协议和IIC通讯协议。5个算法模块:定时控制、感应控制、多时段控制、黄闪控制和绿波带控制。 如果是8019中断,系统调用控制中心的通讯协议,获得控制中心的控制信息;如果是IIC中断,系统调用IIC通讯协议,获得手动修改的控制信息;如果是串口中断,系统再查询是16C554的哪个串口中断,然后调用相应的协议,如果是关于车流量检测的,就给车流量检测板发出控制指令,如果是信号灯控制板,就给红绿灯控制器发出控制指令,或者给交通指示牌发出相应的控制信息,不管什么中断发生,都要调用正在运行的算法重新计算参数。
|