北极星

搜索历史清空

  • 水处理
您的位置:电力发电信息化技术正文

基于LPC2294的CAN与以太网网关互联的设计

2013-08-07 14:59来源:电子科技关键词:以太网存储芯片收藏点赞

投稿

我要投稿

系统首先建立设备初始化任务Task0,将该任务函数主要完成上电自检,两路CAN故障自检,网口断线检测,本机IP、两路CAN波特率及两路网口等网关参数的初始化。在完成以上工作后,创建5个子任务,按优先级由高到低依次为TaskB、TaskC、TaskF、TaskD、TaskE的5个子任务的具体功能如下:

TaskB:主要功能为接收UDP报文并解析,下发至CAN;若接收到时统报文,按照协议解析,并将时戳信息写入时钟芯片

TaskC:主要功能为接收TCP报文,按照协议解析并下发到CAN。

TaskD:完成接收CAN1口或CAN2口的数据,根据规定的传输方式将数据封装成报文格式,并发送至以太网

TaskE:完成接收CAN1口或CAN2口的数据,并按照TCP传输方式,将数据封装并发送到以太网。

TaskF:主要功能为定时发送特殊报文,如:心跳报文、时统报文、工作状态请求报文及设备故障诊断信息报文等,完成网关模块的工作状态检测及参数配置等功能。

5个子任务创建完成后,TaskB和TaskC进入阻塞状态,等待各自的信号量RecUdpQFlag和RecTcpQ一Flag,由于这两个任务的优先级较高,说明网关模块优先转换以太网向CAN总线方向的数据。因此,当以太网中有数据到来时根据报文的类型可得到相应的信号量,TaskB或TaskC立即进入就绪状态等待执行,若当前执行的任务优先级低于这两个任务,TaskB和TaskC可进行抢占执行。当网关模块未收到以太网数据或处理完成后,任务函数TaskF检测模块的定时器,判断是否需要发送工作状态报文和心跳报文等特殊报文。执行完成后,判断CAN节点是否有数据,并选择用UDP或TCP方式发送到以太网,即选择执行TaskD或TaskE,完成CAN向以太网方向的数据传输过程,在此期间允许TaskB和TaskC进行抢占执行。系统通过调度这5个任务函数完成以太网数据包与CAN数据帧间的格式转换与传输,该程序流程如图5所示。

 

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。