- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
TCP/IP协议栈在MSP430单片机上的实现
UIP 系统接口
从系统的角度来分析,UIP 包含3 个C 函数:uip_init ( ) ,uip_input ( ) ,和uip_periodic ( ) 。uip_init ( ) 函数初始化uIP协议栈,在系统启动期间调用。其中uIP_input ( ) 和uIP_periodic ( ) 实质上都是使用uIP_process ( ) ,但它们调用的参数和使用情况不一样。当网络设备接收到新数据时调用函数uip_input ( ) ;uip_periodic ( ) 周期性运行,通常一秒调用一次。当设备驱动程序发数据包到缓存(uip_buf) 时,系统应该调用uip_input ( ) 函数。函数将会处理这个包,并在需要时调用应用程序。当uip_input ( ) 返回时,会有一个输出包放在包缓存里。包的大小由全局变量uip_len 约束,如果uip_len 是0 ,说明没有数据包要发送。
周期时钟函数用于驱动UIP 内部时钟事件。当周期计时被激活时,uip_periodic ( ) 函数被调用。连接号作为参数传递给uip_periodic ( ) 函数。如果有数据输出,则输出的IP 包放在包缓存里。下面是察看输出包的一小段代码,它调用了uip_periodic( ) 函数。其中netdev- send ( ) 是网络驱动部分,负责将uip_buf 数组的内容发出到网上。
for ( i = 0 ;i 《 UIP- CONNS; ++i) {
uip_periodic (i) ;
if (uip_len 》 0)
netdev_send() ;
}
UIP 协议移植到MSP430F149
基于MSP430 F149 的嵌入式TCP/IP 网络通信系统硬件部分主要包括MSP430 芯片、以太网控制器CS8900A 和以太网接口,软件部分包括设备驱动程序、嵌入式TCP/IP 协议栈等部分。
%%%%%%%%%%1
图2 方案的硬件实现
硬件的实现
本方案的单片机选择MSP430F149 完成TCP/IP 协议的解释和执行, 以太网控制器芯片CS89200A 实现遵循的IEEE802.3 协议的CSMAPCD 和CRC 校验等功能,以太网隔离变压器HR601627 转换电平抑制高频干扰接入以太网,最后通过RJ245接口实现终端设备接入Internet 。MSP430F149 是一款16 位超低功耗单片机,具有强大的处理能力,RISC结构,125ns 的指令周期,具有丰富的片内外设,如硬件乘法器、ADC、定时器、看门狗等。它内部具有2KB的RAM和60KB 的FLASH ,寻址空间达64K。它适用于工业控制领域,同样也适用于处理复杂的TCP/IP 协议。CS8900A是CIRRUS LOGIC 公司的一种低价格、高集成度、单芯片、全双工的以太网控制器,也是专门为嵌入式系统设计优化的以太网控制器。CS8900A 有三种工作方式: IPO 方式、存储器方式和DMA 方式。我们选择IPO 方式,以便利用8-bit 数据总线,该总线连接到MSP430 的IPO-port 5。IOR 和IOW是控制线,指示进程是否有读P写访问。
1 2 3
上一篇:物联网网关系统设计
下一篇:云计算的开放架构设计