uC/OS的嵌入式SMI网络转换器设计与应用 05
![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
uC/OS的嵌入式SMI网络转换器设计与应用 05
收发器的串口通信协议中通过加入本地/远端和收发器号来辨别源地址和目的地址,对数据进行校验。由于转换器IP地址主要采用上位机通过以太网进行设置,所以在以太网的数据帧中加入命令头,以辨别设置的是IP数据还是与收发器通信的数据。
软件系统的实现
本系统整个软件设计由操作系统和一系列用户应用程序构成。系统创建了一个启动任务TaskStart(),主要负责系统硬件的初始化,包括时钟的初始化和启动、中断的启动、RTL8019AS的初始化与启动等,并对各个应用任务进行了划分。根据各任务的重要性和实时性,整个模块被分成6个具有不同优先级的应用任务,即IP地址设置、接收协议转换、发送协议转换、NET发送、SMI发送、SMI采集。
任务的执行
任务划分后,各任务便具有独立的堆栈空间,彼此争夺CPU的使用权。一旦获得CPU的使用权,就会独立运行,完成特定的功能。
本系统采用arm作为服务器,PC端作为客户端的TCP通信模式,由上位机主动请求连接arm。在串口和以太网建立通信之前,首先要调用IP地址设置任务,对IP地址、子网掩码、网关和SMI口的通信参数进行初始化设置。
SMI口通信实现的功能有SMI发送和SMI采集。SMI采集任务优先级较低,进行多任务调度后若没有相关事件发生,系统就一直运行SMI采集任务,若采集到本地或远端IP113F的状态发生变化,数据通过协议转换后发送到远程的上位机。SMI发送作为一个单独的任务独立运行。SMI发送任务需要系统 调度器通知缓冲区中是否有待发送的数据。若没有数据发送,则将该任务挂起,系统运行其他任务,如图5所示。
以太网通信模块由以太网数据收发和协议转换构成。数据的接收在RTL8019的中断服务程序中实现。以太网数据的发送、接收协议转换及发送协议转换分别作为独立的任务运行。以太网数据的发送任务同样需要系统调度器对缓冲区中是否有待发送的数据进行通知。协议转换主要实现对接收数据报文的解析及给待发送数据添加协议报头,在编程时可以直接调用嵌入TCP/IP协议的API函数,对数据报文进行分层。
任务间的同步与调度
通常多任务操作系统的任务是一个无限循环,而且没有返回值。如果没有更高优先级的任务进入就绪态,当前任务不会放弃对CPU的使用权。 |
|
|
|
|
|