完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1 概述
在嵌入式系统中,网络通讯是非常重要而且必备的功能。为了充分发挥嵌入式系统中CPU的网络控制功能,选择一款合适 的网络接口电路至关重要,LXT971A网络通讯接口电路就是一个很好的选择。LXT971A是Intel公司的网络通讯接口电路,它符合IEEE标准,直接支持10Mb/s/100Mb/s双绞线应用,也支持100Mb/s光纤接口;该电路提供的MII接口能很好的符合10/100Mb/s双绞线应用,也支持100Mb/s光纤接口;该电路提供的MII接口能很好的符合10/100MACs。 图1所示是LXT971A的内部功能结构框图。 2 LXT971A的引脚功能 LXT971A具有64个引脚,其引脚排列如图2所示。各引脚的功能如下: *TXD0-TXD3是并行数据发送端口; *TX_EN是发送使能端; *TX_CLK是发送时钟,速率为10Mb/s时为2.5MHz,速率为100Mb/s时为25MHz; *TX_ER是错误数据发送端; *RXD0-RXD3是并行数据接收端; *RX_CLK是接收时钟,速率为10Mb/s时为2.5MHz,速率为100Mb/s时为25MHz. *RX_DV是接收数据正常指示端; *COL是冲突检测端; *CRS是载波检测端; *MDDIS、MOC、MDIO、MDINT是MII控制信号端口; *TPFOP、TPFON是网络接口输出正、负端口; *TPFIP、TPFIN是网络接口输入正、负端口; *SD/TP是TP选择; *TxSLEW0、TxSLEW1是TP驱动端; *RESET是复位端; *ADDR0-ADDR4是设备地址端口; *RBIAS是偏置端; %26;#183AUSE是暂停端; *SLEEP是休眠端; *TEST0、TEST1是测试端,接地; *REFCLK/XI、REFCLK/XO是晶振输入、输出端; *TDI、TDO、TMS、TCK、TRST是JTAG测试端; *LED/CFG1、LED/CFG2、LED/CFG3是LED驱动或配置输入端。 3 硬件接口 在实际应用系统中,要实现LXT971A的网络接口功能还要借助于MPC860型网络通信处理器。LXT971网络接口电路与MPC860网络通信处理器是一种非常好的组合,以它们为核心弄好的网络产品有很好的实用性。笔者设计的硬盘录像机和远程电量采集器均是以MPC860为核心CPU,以LXT971为接口电路来实现的,实际应用中均取得了比较好的应用效果。 MPC860是Motorola公司推出的网络通信处理器,其特点主要有:内嵌PowerPC内核;4kbyte指令缓冲和4kbyte数据缓冲;强有力的内存控制和系统功能;高效的结构,可用一个独立的RISC处理器处理通讯单元;可支持以太网、快速以太网、HDLC、ATM等;带有8kB双端口RAM;可提供50MHz、66MHz、80MHz频率,采用357引脚BGA封装;具有强大的第三方工具支持等。 SPC860与LXT971的接口采用标准的MII接口,SD/TP引脚接地,传输介质可采用双绞线。MPC860可通过MII接口初始化LXT971A,而不需要使用LXT971A中的JTAG口。它们的连接原理如图3所示。 4 软件设计 在笔者所开发的嵌入式系统中,MPC860所配置的操作系统为Nucleus PLUS实时嵌入式系统。该系统对网络的出色支持能够使MPC860与LXT971实现无缝连接,而软件设计中,只需简单调用操作系统中的MII_AutoNeg 0函数就可以完成初始化LXT971A的工作,进而快速地进行下一步的网络应用编程。 该系统可支持TCP、UDP、RAW_IP3种接口编程方式。下面给出的是采用TCP方式的服务程序。 Void TCP_Server_Task(UNSIGNED argc,VOID *argv) //TCP服务器端任务 { INT socketd,newsock; //套接字标识 Struct addr_struct *servaddr; //服务器地址结构指针 unsigned int i; VOID *pointer; STATUS status; Struct addr_struct client_addr; NU_DEVICE devices; CHAR serv_in_addrp[]={192.168.1.1};//服务器(本机)IP地址 CHAR subnet[]={255,255,255,0};//子码掩摸 if(NU_Init_Net(%26;amp;Noncached_Memory=NUU_SUCC ESS) //初始化网络模块 { DEMO_Exit(0); //不成功退出 } memcpy(devices[0].dv_ip_addr, serv_ip_addr,4); //服务器IP地址拷贝到地址结构中 memcpy(devices[0].dv_subnet_mask,subnet,4); //服务器子码掩摸拷贝到地址结构中 memcpy(devices[0].dv_subnet_mask,subnet,4); //服务器子码掩拷贝到地址结构中 if(UN_Init_Devices(devices,1)!=NU_SUCCESS) //初始化网络设备LXT971A { DEMO_Exit(0); //不成功退出 } if((socketd=NU_Socket(NU_FAMILY_IP,NU_TYPE_STREAM,0))》=0) //创建套接字 { if((NU_Bind(socketd,servaddr,0))》=0) //绑定服务器IP地址 { status=NU_Listen(socketd,10);//侦听 if(status==NU_SUCCESS) { for=(i=0;i=0) {status=NU_Send_T0_Queue%26;amp;socketQueue,(UNSIGNED*)%26;amp;newsock,1,NU_SU SPEND}; //接收成功队列发送 } } } } } } 编程方式与Windows的网络编程相似。 5 结束语 该设计应用广泛,凡是对网络通讯要求比较高的产品均可采用该设计。如用作监控系统核心产品的硬盘录像机DVR、10万伏变电站上用的高端远程电理采集器、电信网中的路由器等。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2574 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2371 浏览 5 评论
3228 浏览 3 评论
2843 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2796 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
681浏览 1评论
915浏览 0评论
1039浏览 0评论
678浏览 0评论
510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 01:23 , Processed in 1.250739 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号