牛肉炖什么| 不寐病是什么意思| 七月初七是什么星座| 芝麻分是什么意思| 什么食物含叶酸| dikang是什么药| 梦见和女儿吵架是什么意思| 肛瘘是什么症状| 补铁吃什么药| 萎缩性胃炎是什么症状| 入珠是什么意思| 压床娃娃有什么讲究吗| 二氧化钛是什么| 2005年什么年| 单脐动脉是什么意思| 三点水的字和什么有关| 70年产权是从什么时候开始算| 718是什么星座| 亚历山大王什么档次| 辐射对称是什么意思| 阴道长什么样| 啐了一口是什么意思| 子宫肌瘤做什么检查| 密云有什么好玩的地方| 75b是什么罩杯| 右肺下叶纤维化灶是什么意思| 提拉米苏是什么| 石棉是什么| 淋巴结有什么症状| 什么而不| 额头上长痘痘是什么原因引起的| 睡觉做梦是什么原因| 五指毛桃什么人不能吃| 消融手术是什么意思| 喝什么茶降血脂| 孕妇为什么会水肿| 同舟共济是什么意思| 头孢治疗什么| 什么床最环保没甲醛| 做什么生意挣钱| 榴莲跟什么不能一起吃| 无病呻吟是什么意思| 鹅蛋脸适合戴什么眼镜| 嬗变什么意思| 为什么会心慌| 指甲是白色的是什么原因| 食管裂孔疝是什么病| 阴阳失调是什么意思| 尿酸高什么水果不能吃| 消防队属于什么编制| 狗怕什么| 贫血吃什么补品| 树欲静而风不止是什么意思| 欲壑难填是什么意思| 心脏疼吃什么药| 什么的礼物| 哺乳期抽烟对宝宝有什么影响| 为什么会有阴道炎| 白带什么样子| 热痱子是什么原因引起的| 什么是马上风| 鼻子两侧毛孔粗大是什么原因造成的| 芈怎么读什么意思| 难以入睡是什么原因引起的| 林冲代表什么生肖| hoka跑鞋中文叫什么| 睾丸炎吃什么药最有效| 什么是卵泡期| 老年人便秘吃什么药| 出院小结是什么| 香蕉皮擦脸有什么作用与功效| 双规什么意思| 梦见狗死了是什么预兆| 心口下面疼是什么原因| 什么肉好吃| 大料是什么调料| 腿抽筋用什么药| 胃炎吃什么中成药效果好| 梦见收稻谷有什么预兆| 梦见自己被绑架了是什么意思| 晚的反义词是什么| 幽门螺杆菌阳性是什么意思| 畏光是什么意思| 什么是植物神经功能紊乱| 乙肝核心抗体高是什么意思| 甲状腺偏高有什么影响| 南瓜和什么相克| 橘红是什么| 复姓是什么意思| 白佛言是什么意思| 毛笔是用什么毛做的| lg手机是什么牌子| bowdor是什么牌子的手表| 手发抖是什么原因引起的年轻人| 痉挛是什么意思| 肠梗阻是什么意思| mopar是什么牌子| 蚊虫叮咬红肿用什么药快速消肿| 胡萝卜和什么榨汁好喝| 孕妇快生了有什么症状| 孕妇咳嗽可以吃什么药| 什么是小男人| 喝隔夜茶有什么好处和坏处| 震仰盂什么意思| 体制内是什么意思| 豕是什么动物| 行尸走肉什么意思| 肚子胀不排便什么原因| 小龙虾吃什么食物| 梳头有什么好处| 被草是什么感觉| 跟单员是做什么的| 驳是什么动物| 电轴不偏是什么意思| 女性风湿吃什么东西好| 荆芥的别名叫什么| 法国公鸡是什么牌子| 胃胀打嗝吃什么药| 是什么星座| 来加贝念什么| 绍兴本地人喝什么黄酒| 喝酒吃海带有什么危害| 丝苗米是什么米| 什么是润年| 火丹是什么原因造成的| c肽测定是什么意思| 五指毛桃有什么作用| 狐媚子是什么意思| 试管什么降调| 太阳病是什么意思| 大惊小怪是什么意思| 什么叫资本运作| 结婚需要什么证件| 吃什么可以降血压| 17088a是什么尺码男装| 副局级是什么级别| 游离甲状腺素偏低是什么意思| 白醋加盐洗脸有什么好处| 算计是什么意思| 金鸡报晓是什么意思| 时代是什么意思| 三体讲的是什么| 72年属什么生肖属相| 洲际导弹是什么意思| 县人武部政委什么级别| 头麻是什么病的前兆| 刚字五行属什么| 头发粗硬是什么原因| 鮰鱼是什么鱼| 捞佬是什么意思| 什么样的疤痕影响当兵| 鼻梁长痘是什么原因| 殚精竭虑是什么意思| 骶髂关节在什么位置| 打卡什么意思| 什么是脂肪肝| 智齿冠周炎吃什么消炎药| plt是什么| 蝎子吃什么| 交界性心律是什么意思| 三点水一个分读什么| 夏天为什么会下冰雹| 什么网名好| 菜花长什么样| 吃生姜有什么好处| 总是感觉有尿意是什么原因| 肝昏迷是什么症状| 家人们是什么意思| 什么血型会导致不孕| 大便绿色是什么原因| 吃什么减肥最好最快| 尖斌卡引是什么意思| rdw是什么意思| 阑尾在什么位置| 什么是职业年金| 最好的红酒是什么牌子| 38岁适合什么护肤品| 躺下就头晕是什么原因| 头孢治疗什么| 嘴上有痣代表什么| 梦见自己爷爷死了是什么预兆| fgr医学上是什么意思| 江浙沪是什么意思| 什么汤好喝又简单| 高校是什么意思| 句号代表什么意思| 一个月一个泉是什么字| 胆结石能吃什么水果| 怀孕初期吃什么| 手肘黑是什么原因| 低钠盐是什么意思| 女人腰上有痣代表什么| 血热是什么症状| 花开两朵各表一枝什么意思| fdg是什么意思| 顾里为什么和席城睡了| 风疹病毒是什么意思| c14检查前需要注意什么| 嫐什么意思| 山竹不能和什么水果一起吃| mac版本是什么意思| 默的部首是什么| 月经很少什么原因| 花生什么时候收| 疱疹用什么药最好| cm是什么| 太阳花是什么花| 谥号是什么意思| 执业医师是什么意思| 特效药是什么意思| 抠是什么意思| none是什么意思| 麟字五行属什么| roma是什么牌子| 龙年是什么年| 什么布剪不断| 阑尾炎不能吃什么食物| 掉头发是缺什么维生素| 酒后头疼吃什么| adhd是什么病| honor是什么牌子的手机| 哈密瓜为什么会苦| 纵隔是什么意思| icp是什么| 梦见花开是什么预兆| 切痣挂什么科| 胎盘位置低有什么危险| 990是什么意思| 耳聋是什么原因引起的| 肛瘘是什么原因造成的| 奥美拉唑什么时候吃最好| 自闭什么意思| 驾校教练需要什么条件| 光什么夺目| 口上长水泡是什么原因| 鱼丸是什么做的| 肩周炎用什么药| 持续高烧不退是什么原因| pro是什么氨基酸| 人为什么做梦| ib是什么单位| 男人硬不起来是什么原因| 授教什么意思| 去侍庙有什么禁忌| 鼻炎挂什么科| 单鞋是什么鞋| 高危性行为是什么意思| electrolux是什么牌子| 猫传腹是什么病| 为什么美国支持以色列| 花非花雾非雾什么意思| 三月初一是什么星座| 三阳开泰是什么意思| 鼾症是什么病| 玉米须煮水喝有什么好处| 昏睡是什么症状| 盐酸西替利嗪片主治什么| 脖子后面长痘痘是什么原因| 大葱炒什么好吃| 晚上11点多是什么时辰| ctc是什么| 胎盘植入是什么意思| 黄晓明的老婆叫什么名字| 为什么脸上老长痘痘| 百度

新闻中心

EEPW首页 > EDA/PCB > 设计应用 > TCP/IP协议在A T91RM9200上的实现

【CX-4汽车图片】一汽马自达

——
作者:电子产品世界 时间:2025-08-04 来源:电子产品世界 收藏
(西安电子科技大学 通信工程学院 ISN国家重点实验室 陕西 西安 710071)
摘要:介绍了[1]芯片与DM9161E[2]的硬件接口电路设计以及驱动程序开发。在此基础上讨论了[3]分层实现方法,并根据实际情况进行简化。最后详细论述了TCP
/IP协议在上的具体实现过程。
关键词:协议;
Implement  Protocol In AT91RM9200
Lin YunBiao1   Wu Chengke1   Li Yunsong1
(School of Communication Engineering, National Key Lab. of Integrated Service Networks, Xidian University., Xi’an 710071, China)
Abstract: This Paper firstly introduces the design of the hardware interface circuit of The At91RM9200 and DM9161E, and then discusses how to embed the TCP/IP protocol into the AT91RM9200; Secondly, It discusses the delamination realize of the TCP/IP protocol, and According to the needs of the application take some measures to simplify the protocol. Finally, it describes the process of realizing TCP/IP in AT91RM9200.
Keywords: TCP/IP Protocol; AT91RM9200;
1    引言
    随着internet的飞速发展,人们对网络的要求也日益增多。尤其随着集成电路的发展像ARM[7]那种低功耗,多功能芯片不断出现。人们自然而然要求在它们上面实现上网功能,从而使它们的应用领域变得更加广泛。本文采用了ATMEL公司的AT91RM9200 ARM芯片设计与DM9161E的硬件接口电路,并且在AT91RM9100上实现了TCP/IP协议,使它具有了上网功能,最终能够实现与其他的设备进行网上数据业务。
2    芯片简介
   AT91RM9200是ATMEL公司推出一款基于AT920T处理器的片上系统,内部集成了丰富的标准接口,包括USB主/从设备接口、串口、10/100M以太网媒体接入控制器、SPI、TWI[1]、扩展总线接口(EBI[1])等。AT91RM9200内嵌以太网控制器可以半双工或全双工模式在10M/100Mbps速率下工作。在半双工模式下,控制器支持IEEE802.3 CSMA/CD 协议;在全双工模式下,它支持具有流控控制的IEEE802.3 MAC控制层。以太网控制器的MAC层支持MII[ 1 ](Media Independent Interface)和BDI[ 1 ](Buffered DMA Interface),                                                  MII 遵 
循ISO/IEC802.3 中物理层与MAC 层分离的媒体独立标准。物理层接口(PHY)完成所有输入输出数据的编码解码:10Base-T采用Manchester 编码、100Base-X 采用4B/5B 编码、100Base-T4 采用8B/6T 编码。在接收数据时,MII 接收前缀和末尾都加CRC 的原始数据包。在发送数据时,MII 给数据包加上前缀和末尾的CRC,MAC层还产生填充数据并传给PHY。
 
DM9161E是DAVICOM公司推出的一款能够工作在1000BASE-TX和10BASE-TX的物理层收发器。在媒体方面,它提供了直接跟非屏蔽五类双绞线的接口。通过MII接口,DM9161E可以跟AT91RM9200的MAC层进行通信。 

 
3    硬件设计
AT91RM9200与DM9161E的硬件接口电路如图1所示:
 

           图 1   AT91RM9200与DM9161E的硬件接口电路
在该系统中 AT91RM9200内部集成了以太网控制器(EMAC),DM9161E负责物理层通信,HR901103A负责电平滤波与屏蔽五类双绞线接口。
如图1所示AT91RM9200与DM9161E之间是通过RMII接口进行通信。AT91RM9200的 PA15/EMDC,PA16/EMDIO分别接DM9161E的MDC[1]与 MDIO[1],这样可以对DM9161E内部寄存器进行操作,包括配置DM9161E物理地址,子网掩码等。
PA10/ETX1,PA9/ETX0,PA8/TXEN分别接DM9161E的TXD1,TXD0,TXEN进行数据发送控制。
PA13/ERX1与PA12/ERX0分别接DM9161E的RXD1与RXD0进行数据接收。AT91
RM9200的NRST接DM9161E RESET脚可以对DM9161E进行同步复位。
    DM9161E的MDINT接AT91RM9200的PC4可以实现当DM9161E接收到足够多网络数据包时向AT91RM9200以太网控制器发接收中断信号,通知AT91RM9200对接收数据处理。
DM9161E 的RXEN接高电平,表示接收一直有效。而TXEN则由AT91RM9200进行控制,只有有数据才有效。
AT91RM9200的PA11/ECRSDV与PA14/ERXER分别接DM9161E的RXDV与RXER,可以监控接收到的数据的状态。
4    软件设计
4.1设备驱动设计
设备驱动程序设计包括如下几个部分:
     (1)  设备初始化:为了使DM9161E收发数据,必须对它内部寄存器进行配置,这些配置包括物理地址、IP地址。为了实现整个TCP/IP协议,还要有一个定时器。
(2)  中断服务程序:由于网络服务中是否有数据是未知的,所以必须有一个中断服务程序,负责处理DM9161E接收到数据包时向AT91RM9200EMAC控制器发出中断请求,并分析每一个数据包,根据包类型向相应得上层协议层发送。
(3)  帧数据发送:为了能使数据在网络上传输,还要将IP层过来的数据进行装帧.在每个数据包前面加入接收端以太网地址、发送端以太网地址、服务类型、校验码。然后把装帧后的数据包送到DM9161E发送缓冲区,配置相应发送寄存器:发送数据包缓冲区地址、数据包长度。写完长度寄存器后DM9161E就开始启动发送。
(4)  帧数据接收:将中断服务程序送过来的数据包进行分析,如果是ARP包则将该包交给ARP模块处理。如果是IP包则将该包发送给IP模块处理。

4.2   TCP/IP的具体实现
由于传统PC机内存资源丰富,而且还是多任务系统,所以在传统PC机上能够实现完整TCP/IP协议。但在AT91RM9200实现的嵌入式系统中,由于受到内存和处理速度限制,不可能实现完整TCP/IP。因此必须对TCP/IP根据实际情况进行简化。本文在AT91RM9200上面实现ARP、IP、ICMP、UDP和TCP,并对它们按层(图2 所示)进行了简化。
在数据链路层实现ARP协议。该模块由ARPRequest、ARPInput、ARPTimer组成。ARPRequest负责主机在向网络发送数据时发送ARP请求以确定目的地址的以太网地址。ARPInput判断ARP包类型是网络上其它机子发送过来的请求包或是回送给本机的响应包、判断其合法性并进行相应的处理。如果是请求包则交换目的地址和源地址的以太网地址跟IP地址,然后计算校验码,打包发送出去。如果是返回给本机ARP响应包,则将数据包里面的IP地址存到路由表里,以便往后发送数据时可以查询目的以太网地址。
在网络层实现IP协议和ICMP协议。IP模块由IPInput和IPoutput组成。IPInput负责接收IP数据包,IPoutput负责发送IP数据包。IPInput首先判断版本号、校验和、IP头长度是否为正确,如果不正确则丢弃数据包,反之判断目的地址是否为当前主机的IP地址,如果不是则将在路由表里寻找目的地址,如果找到则转发该数据包。如果目的地址是当前主机IP地址就判断数据包的类型,如果是ICMP则将它发送到ICMP协议层,如果是TCP包则将它送到TCP协议层。IPoutput负责发送IP数据包,接收上层协议传递下来的数据,加上20字节IP首部,正确设置源IP地址和目的IP地址、协议类型,计算检验和,交给下面的链路层发送。ICMP协议负责传递差错报文以及其它需要注意的信息,且由ICMP首部8位类型字段和8位代码字段决定信息种类。在AT91RM9200中只实现对回显请求(类型代码为80)报文处理,从IP层接收到ICMP包后,判断其类型代码段是否为80。如果是将这两个字段设置为00(回显应答),计算检验和,再交给IP层发送;如果不是则丢弃;从而实现对ping功能支持。
在传输层上实现TCP协议。它提供一种面向连接的可靠的字节流服务。主要由TCPInput、TCPOutput、TCPTimer、TCB队列组成,并根据具体需要进行简化。TCP控制块TCB用结构体来实现,每一个TCB包含一条TCP连接所有控制和状态信息,全部的TCB形成了一个双向链表,有利于在所有TCP连接中进行搜索。TCPTimer负责管理TCP协议中各种状态信息,定时刷新各个TCB状态,这里仅仅实现了一个500ms慢速定时器[5]。TCPInput负责接收从下层IP模块接收到的TCP数据包,并根据TCP连接的状态信息以及TCP首部各个标志位进行分支处理,将数据交给对应端口的上层应用程序,并调用其它函数实现对TCP包的响应和状态变迁。TCPOutput负责TCP报文发送,当接收到上层应用程序数据时,首先发送SYN[4]帧,与目标主机三次握手建立连接,之后加上TCP首部,交给下层IP模块发送,并通过重传定时器实现超时重发、持续定时器发送窗口探测帧等功能,待所有数据发送完毕并得到确认后发送FIN[4]帧,通过四次握手关闭连接,TCPOutput还可在不同状态和事件下被其它程序调用发送ACK帧、RST帧等其它TCP报文;在PC机上往往可以同时维护多条TCP连接;但在ARM上,由于ARM速度和RAM容量的限制,只支持一条TCP连接;这样大大简化了程序复杂度,同时也满足了实际需要。   
 
图 2    AT91RM9200上TCP/IP体系结构
5    结论
在信息化今天,Internet技术给人们生活、工作、交流都提供了很大便利,它不仅解决了人与人之间的信息交流,还解决了企业之间信息交流。Internet技术目前已经深入到了日常生活中的电子设备中如视频监控等。各国信息界同仁都在关注并研究电子设备与Internet的连接问题。ARM网络中TCP/IP协议研究解决了以ARM为核心的处理系统与Internet的连接问题,为ARM设备的应用开辟了更为广阔前景。
参考文献:
[1]  ATMEL  AT91RM9200 datasheet.2003
[2]  DAVICOM  DM9161E datasheet.2001
[3]  Douglas E.Comer. TCP/IP进行网际互联(卷1). 林瑶等译.北京电子工业出版社.2001
[4]  王罡,林立志编著. 基于Windows的TCP/IP编程. 北京: 清华大学出版社,  2000
[5]  W. Richard Stevens. TCP/IP Illustrated, Volume 1The Protocols . 2001
[6]  Gary R. Wright, Wright Gary R., W. Richard Stevens, TCP/IP Illustrated, Volume 2 : The Implementation, 2001
[7]  杜春雷. ARM体系结构与编程 .北京: 清华大学出版社, 2003
百度 ”  社科院原副院长:中国金融体制改革要服务于实体经济  【解说】12月26日,2015-2016中国经济年会在北京召开,中国社会科学院原副院长、国家金融与发展实验室理事长李扬当天在北京表示,中国推动金融体制改革要服务于实体经济,“实体经济要什么,改革就改什么。

tcp/ip相关文章:tcp/ip是什么


双绞线传输器相关文章:双绞线传输器原理


关键词: AT91RM9200 TCP/IP 通讯

评论


相关推荐

技术专区

关闭
护士规培是什么意思 当志愿者有什么好处 西布曲明的危害及副作用分别是什么 南昌有什么特产 什么驴技穷成语
90年属什么 孽障是什么意思 7.2是什么星座 北京大栅栏有什么好玩的 机是什么生肖
女人切除子宫有什么影响 淋巴结清扫是什么意思 雾灯什么时候开 media是什么意思 6月底什么星座
山药有什么功效 长期胃胀是什么原因 大力念什么 为什么肝区隐隐作痛 梦见自己出嫁是什么意思
电瓶车充不进电是什么原因hcv8jop7ns3r.cn 手串断了寓意什么hcv7jop6ns3r.cn 主动脉硬化是什么意思hcv9jop0ns5r.cn damon英文名什么寓意hcv9jop1ns6r.cn 意欲何为是什么意思hcv8jop0ns4r.cn
吃什么指甲长得快hcv9jop6ns2r.cn 什么军什么马hcv8jop0ns5r.cn 雪纺是什么面料hcv8jop8ns4r.cn 什么血型可以生出o型血wmyky.com 1908年中国发生了什么hcv8jop3ns7r.cn
头顶秃了一小块是什么原因怎么办hcv7jop5ns0r.cn 绿原酸是什么liaochangning.com 玫琳凯属于什么档次hcv8jop8ns5r.cn 睾丸癌是由什么引起的hebeidezhi.com ceo是什么意思hcv8jop0ns3r.cn
梦见奶奶死了是什么意思hcv9jop6ns1r.cn 商朝之后是什么朝代gysmod.com 什么是风湿fenrenren.com 淋巴吃什么药可以消除hcv9jop0ns4r.cn 为什么吃一点东西肚子就胀hcv9jop2ns9r.cn
百度