基于MC9328MXl的Socket通信设计与实现
关键词:嵌入式系统;ARM;MC9328MXl;CS8900A;Socket编程
1 引言
目前,嵌入式系统已经广泛应用到人们的工作、生活中,2003年我国嵌入式系统应用产品经济总量达l 000亿元。随着技术的发展,8位MCU市场已逐步趋向稳定,32位MPU代表着嵌入式技术的发展方向,正在加速发长。在32位嵌入式微处理器市场上,基于ARM内核的微处理器处于绝对的领导地位。
嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统除了具有高效、稳定、性能专一等优点外,还具有实时性较高的操作系统。嵌入式系统与通信、网络技术的结合可以极大增强网络的智能化与灵话性,拓展通信功能,从而实现各种通信系统之间的互联互通。本文给出了一种适合于中/低端应用的通信平台设计方案,它可支持以太网之间的数据传输,并且具有RS232、RS485、USB等接口。文中围绕嵌入式Linux环境设计了基于MC9328MXl(ARM920T)最小系统的硬件通信平台,从而实现了嵌入式Socket通信。
2 最小系统分析
Motorola公司的MC9328MXl是以ARM920T为内核的高性价比16/32位RISC微控制器,内含一个ARM公司设计的16/32位ARM920T RISC处理器核,ARM920T为低功耗,高性能16/32位核,最适合于对价格及功耗敏感的应用场合。除了ARM920T核以外,MC9328MXl还包含了许多外围功能模块。处理器和这些模块都集成在核心板上,其具体结构如图1所示。
由图1可见,除了ARM920TDMI内核外,MC9328MXl还集成了多个外围功能模块:一个LCD控制器、一个脉冲调制控制器、一个USB控制器及多个扩展通道,但是没有集成用于网络通信的以太网控制器。所以,需要设计包含合适的以太网控制器的外围电路。
3 外围电路设计
本系统选用与MC9328MXl相匹配的CS8900A作为以太网控制器。CS8900A是Cirrus Logic公司生产的低功耗16位以太网控制器,功能强大。该器件的突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要动态调整,通过内部寄存器的设置来适应不同的应用环境。
CS8900A内部结构框图如图2所示,内部功能模块主要是802.3介质访问控制块(MAC)。802.3介质访问控制块支持全双工工作模式,完全依照IEEE802.3以太网标准,采用100引脚TQFP封装,负责处理有关以太网数据帧的发送和接收,包括:冲突检测、帧头的产生和检测、CRC校验码的生成和验证。通过对发送控制寄存器(TxCMD)的初始化配置,MAC能自动完成帧的冲突后重传。如果帧的数据部分少于46个字节,它能生成填充字段使数据帧达到802.3所要求的最短长度。
CS8900A的主要特点如下:
符合IEEE802.3以太网标准,并带有ISA接口;
片内4KB RAM;
适用于I/O工作模式、存储器工作模式和DMA工作模式;
带有传送、接收低通滤波的lOBase2T连接端口;
支持lOBase2,lOBase5和lOBase2F的AUI接口;
自动生成报头,自动进行CRC检验,冲突后自动重发;
最大电流消耗为55mA(5 V电源);
全双工工作模式;
支持外部EEPROM。
另外,要实现CS8900A与主机之间的数据通讯,在电路设计时可根据具体情况灵活选择合适的数据传输模式。CS8900A支持的传输模式有:I/O模式和Memory模式,另外还有DMA模式。其中,I/O模式是访问CS8900A存储区的缺省模式,简单易用。
由MC9328MXl的引脚描述可以看出,MCU的数据是通过D[3l:0]传输的,而以太网控制器CS8900A最多使用16位传输模式,所以MC9328MXl的数据总线前16位(D[15:0])应与CS8900A的SD[O:15]相连,为解决速度不匹配的问题,需使用具有缓冲功能的总线收发器。从成本考虑,该系统采用两个8位的74LS245。地址信息通过MC9328MXI地址总线接口的A[DO:03]与CS8900A的SA[00:03]通过缓冲器74HC244相连,A[04:19]与SA[04:19]直接相连用于设置网卡的初始基址。另外,CS8900A通过一个带扼流线圈的隔离变压器20F001N将CPU发送的数据(变比为l:1.414)发送到网络上;接收数据时,网络传送的数据经过隔离变压器(变比为1:1)。隔离变压器的作用主要是将外部线路与CS8900A隔开,防止干扰和烧坏元件,实现带电的插拔功能。XTALl与XTAL2之间的晶振为CS8900A提供稳定的时钟脉冲。其电路图如图3所示。
4 基于嵌入式Linux的Socket通信
基于嵌入式Linux的开发环境一般由装有交叉编译器的PC机和硬件开发板组成。本设计以PC宿主机作为客户端,以MC9328MXl的开发板作为服务器实现通信。先由PC机将客户机程序(server)编译好后,通过串口写入开发板,然后将开发板与PC机通过以太网口建立连接。
Socket(套接字)是通过标准UNIX文件描述符和其他程序通讯的一个方法,其实质是提供了进程通信的端点,可以看作是一种特殊的管道。通过Sock-et编程可以实现网络通信。一个完整的套接字有一个相关的描述:协议、本地地址、本地端口、远程地址、远程端口。
通用套接口地址结构struct sockaddr的定义如下:
设计 实现 通信 Socket MC9328MXl 基于 相关文章:
- 直接变频接收机设计可实现多标准/多频带运行(10-11)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 无线通信网络设计与现场测试(10-10)
- WiMAX数据传输加密方案设计与实现(05-25)
- 高性能TD-SCDMA接收机的设计(03-15)
- 初步设计WiMAX射频系统(03-29)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...