基于CAN总线的电梯主控系统软硬件设计
图5 继电器输出电路。
3 控制系统软件设计
控制系统软件设计时采用了当前主流的keil 集成开发环境。软件设计以抢占式多任务实时操作系统μC/OS 为平台实现[5]了电梯主控系统的调度分配、CAN通信、液晶显示三个任务,如图6 所示。
图6 系统控制通信图。
任务之间通信以消息队列和邮箱方式进行通信。
在与硬件接口上根据LPC2294 芯片手册和应用的需要,完成了CAN 模块的驱动、I2C 的总线模块的驱动、和GPIO 的模式的按键和12864 点阵液晶驱动,这样使得在μC/OS 的任务中无需关注LPC2294 芯片板上资源的具体使用,而只需要调用相应的接口函数,方便了系统软件的升级和改动。
3.1 主控调度任务
在主控调度任务中完成当前梯呼梯信号的整合,然后再根据当前收集到的群控正常等输入信号判断当前梯的运行状态(如自动状态、消防状态、锁梯状态等),做出当前状态的处理;在电梯处在可调度的状态下,根据相应的调度算法完成对电梯的呼梯的合理配置;并通过消息队列和邮箱与CAN 通信任务、液晶显示任务进行任务间通信,完成数据的交互。
3.2 CAN 通信任务
原则上对4 路CAN 控制器的资源分配为:CAN0外呼通信、CAN1 内召通信、CAN2 变频器通信、CAN3群控子系统通信[7]。但系统中可以在软件上进行相应的配置,然后使得任意CAN 控制器可以与任意的外部子系统相连,这样就增加了系统的灵活性,也给操作人员带来了方便。在CAN 通信任务调用之前,需要调用相应的CAN 控制器初始化函数,对CAN 控制器中断、波特率、验收过滤器等进行相关的设置。在CAN通信任务中,一方面需要完成4 路CAN 控制器通过中断方式接收到缓冲区中的数据再验证无误后交付给主控调度任务,令一方面需把主控会把给群控调度器、变频器、内召板、轿厢板发送的信号或者命令交付给CAN 通信任务。CAN 通信任务再接收到主控的数据做相应的验证,封装成相应的协议格式的帧,然后发送给相应的子系统。
在CAN 通信中,发送数据的封装和接收数据的解封遵循的格式除了变频器部分参考第三方提供的CAN 总线通信协议,其他模块与主控系统的通信完全依靠下述自定义协议。在电梯控制系统中,CAN 通信全部采用CAN2.0 所规定的扩展数据帧[5-7],其格式如表1 所示。传输的帧中29 位ID 按下表划分(全0 或者全1 将被舍弃)。
表1 扩展帧ID 格式
评论