摘要: 本文介绍了依据新式独立操控芯片CP2200的以太网通讯接口的软硬件规划办法。
关键词: CP2200;以太网;C8051F040;TCP/IP |0″>TCP/IP
导言
当时,嵌入式规划人员在为长途操控或监控设备供给以太网接入时,运用的以太网操控器都是专为个人计算机体系规划的,如RTL8019,DM9008,CS8900A 等。这些器材不只接口电路杂乱、体积较大,而且比较贵重。CP2200 是Silabs于近期推出的一款独立以太网操控器,它契合IEEE 802.3协议,支撑10M以太网接入,而且仅需求很少的外部电路连线就可满意绝大多数嵌入式以太网接口的规划要求,使得潜入式以太网接口的规划大大简化,占板空间大大减小,体系开发本钱大大下降。
别的,该以太网操控器具有8位并行主机接口,可认为绝大多数微操控器或主处理器供给以太网通讯功用。8位并行总线接口支撑Intel和Motorola总线办法,可以运用复用或非复用办法寻址。这些功用加上相关处理器的TCP/IP协议栈,使得嵌入式使用体系的以太网接口完成变得极端简易。
硬件电路规划
体系的硬件电路示于图1。CP2200的外围电路比较简略。
图1 硬件电路
I/O并行接口
CP2200的并行主机接口,支撑Motorola 和 Intel两种总线办法,且支撑地址数据复用和非复用办法。可以经过将MUXEN和MOTEN引脚接地或拉高电平来完成对主机接口总线办法的装备。
以太网变压器
要完成以太网接口,以太网变压器是不行短少的。在差分接纳引脚(RX+/RX-)上,需求一个专用于10BASE-T 操作的1:1 脉冲变压器。 在差分发送引脚(TX+/TX-)上,需求外接一个带有中心抽头的1:2.5 脉冲变压器。变压器应具有2kV 以上的电压阻隔功用,以避免静电搅扰。发送端需求两个8W(精度为1%)的电阻和一个560pF 的电容与特定端相连,接纳端需求一个100W电阻与特定端相连。
依照CP2200的要求,笔者选用的是PRJ系列的PRJ-010型变压器。该变压器集成了RJ-45接头,在省去了不少连线的一起也进步了高频信号传输的牢靠性。
其他电路
LINK和ACT引脚输出电平来驱动LED,用来指示网络的衔接和活动状况。
一切电源引脚都有必要与同一个外部3.3V 电源相连。相似的,一切参阅地都应在外部衔接到相同的接地址。每个VDD 和VSS 引脚都应衔接一个0.1mF 的陶瓷旁路电容,该%&&&&&%尽或许接近引脚。
需求特别阐明的是,驱动双绞线接口需求相对高的电流,因而以太网的收发数据线应尽或许短,而且线径恰当加大以削减电阻损耗(为了确保数据的牢靠传输,笔者的PCB电路板挑选了20mil的线径)。
软件规划
TCP/IP 协议品种繁复,相互之间交互作用杂乱,在单片机上不行能完成一切协议,所以有必要对协议栈进行取舍。结合体系的详细通讯要求,笔者的体系最终只保留了TCP、UDP、IP、%&&&&&%MP、ARP协议模块。在协议栈程序的全体规划上,考虑到单片机的单使命履行办法很难发挥TCP/IP协议的特色,咱们选用了依据事情驱动机制的TCP/IP协议栈的完成办法。该机制的引进,使得体系在确保具有高效的汇编语言代码功率的一起,实时呼应性也得到了大幅进步。下面将详细论述事情驱动机制的特色和依据该机制的TCP/IP协议栈的完成。
事情驱动机制
体系初始化完成后, 进入事情循环体,不断查询C8051F040的事情队列是否有事情。一旦事情队列非空,则读取事情标志字,判别事情类型,然后调用对应事情处理子程序。处理子程序履行结束后,依然回来到事情循环体中。事情标志字由中止直接或许直接驱动,当某个事情发生后,只需在中止服务程序中将状况字的对应方位位。中止不断向事情队列中增加事情,C8051F040处理程序则不停地从事情队列中读取事情标志字,处理事情。
事情驱动机制的特色为:
*因为在中止处理程序中,只是履行了改动事情标志字这样的简略程序句子,把事情增加到C8051F040的事情队列中后就当即回来。所以体系封闭中止的时刻很短。增强了体系对中止处理的实时性。
*C8051F040依据当时读取的事情,进行相应事情处理或许向事情队列中增加进一步处理所需的事情。这实际上是把使命都进行了分步处理,在履行一步这一使命的一起,也可以履行一步其他使命。这样.在不影响主程序流程的情况下,又进步了体系的实时性。
事情循环的扼要流程
图注:1=EVENT_ETH_ARRIVED;2=EVENT_TCP_RETRAN;3=EVENT_TCP_INACTIVITY;4=EVENT_ARP_RETRAN;5=EVENT_AGE_ARP_CACHE;6=EVENT_COME_NEWDATA;
图2 事情循环流程
事情循环体的扼要流程如图2所示,其间各事情的意义分别为:
EVENT_ETH_ARRIVED: 有待处理的以太网帧事情。检测到此事情,C8051F040会调用读CP2200承受缓冲区程序,然后对帧进行解包处理;
EVENT_TCP_RETRAN: TCP重传事情。当TCP定时器超时,触发该事情;
EVENT_TCP_INACTIVITY:关断不活动衔接事情。当某衔接超越0.5秒没有收发数据,则触发此事情;
EVENT_ARP_RETRAN:ARP恳求数据包重传事情。当某一ARP恳求在宣布0.5秒后没有相应,则触发该事情。经两次重发都没回应,则将以该IP为意图地址的数据包丢掉;
EVENT_AGE_ARP_CACHE:更新ARP缓存事情。每60秒触发该事情一次;
EVENT_COME_NEWDATA: 有新数据事情。当有新数据待发送时,触发该事情;
结语
CP2200的多种集成功用如CRC校验,数据滤波等有用地减轻了单片机的载荷,它内部的收发接口单元操作起来灵敏便利,为以太网数据包供给了有用的缓冲。芯片具有安稳的作业功用和抗搅扰抗震功用,笔者使用CP2200, C8051F040单片机和TCP/IP协议栈开宣布了用于铁路机车的以太网通讯接口板卡。此板卡已在测验机车上运转,作业功用杰出,可以进行安稳的数据传递。
参阅文献:
1. Silicon Laboratories Inc. CP2200 datasheet. http://www.silabs.com/
2. Silicon Semiconductor Inc. c8051f040 datasheet. http://www.silabs.com/
3. Special Edition Using TCP/IP,Ramadas Shanmugam ,R.Padmini,S.Nivedita 尹浩琼 李剑译 电子工业出版社
4. 《TCP/IP祥解 卷2 完成》W.Richard Stevens http://www.china.pub.com/