下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于以太网技术的嵌入式控制平台设计摘要:本文设计并实现了一个基于以太网技术的嵌入式控制平台。在硬件方面采用了三星公司的 S3C2440处理器作为核心控制单元,网络控制采用一款高速以太网接口芯片DM9000,本文重点阐述了系统的网络模块设计和Linux操作系统网络程序设计,实现了数据的嵌入式网络传输。论文关键词:嵌入式,S3C2440,DM9000,Linux操作系统随着信息处理技术的不断开展,基于网络化技术的嵌入式控制平台成为了主要的开展方向,以太网技术以IP地址来识别所有的监控设备,采用先进的网络传输协议来进行模拟量或数字量信号的处理与传输。利用现有的网络资源,轻而易举地实现远程监控。布控区
2、域广阔,系统扩展能力强,只要有网络的地方就可以对工业设备进行监控、参数设定和修改,性能上更稳定,且便于安装、维护,易于实现系统的模块化设计,便于维护和管理。本文针对工业技术应用,设计了基于以太网技术的嵌入式控制平台。2硬件系统设计为了满足系统实时性以及易于扩展的功能要求,本文以S3C2440作为核心芯片,它具有丰富的接口资源,内部具有A/D 转换器,可以实现数据的实时采样、分析和传输。该芯片是基于ARM920T内核的嵌入式微处理器,由内核、高速缓存和内存管理单元组成,具有性能高、功耗低和体积小等优良特性。其实时性、可扩展性完全可以到达嵌入式控制平台的要求【1】。本文在该芯片的根底上进行开发设计
3、,本系统的硬件结构包括12个模块,分别是电源模块、Nand-Flash/Nor-Flash存储模块、SDRAM模块、A/D转换模块、复位模块、通用I/O模块、键盘模块、USB模块、LCD模块、JTAG模块、串行通信模块以及以太网控制器模块。其中网络模块由于RS232、RS485等总线组成的工业网络有效半径小,数据交换速度慢,有关的通信协议少等缺陷,已经越来越不能适应日渐复杂的工业需求,本文采用网络接口芯片DM9000实现现场数据的远程传送,建立工业以太网的通信网络【2】 。DM9000是一款高速以太网接口芯片,其根本特征是:集成10/100M物理层接口;内部带有16K字节SRAM用作接收发送的
4、FIFO缓存;支持8/16bit两种主机工作模式;通过HP认证的AUTO-Mdix(支持直接互连自动翻转)功能;支持TCP/IP加速(IPV4 check sum offload)减轻CPU负担,提高整机效能;10ns I/O读写时间。DM9000A以太网控制器遵循IEEE公布的802.3以太网传输协议。当系统上电时,S3C2440A通过总线配置DM9000A内部网络控制存放器(NCR)、中断存放器(ISR)等,完成DM9000A的初始化。随后,DM9000A进入数据收发等待状态。当S3C2440A向以太网发送数据时,先将数据打包成UDP或IP数据包,并通过16 bit总线发送到DM9000A
5、的数据发送缓存中,然后将数据长度等信息填充到DM9000A的相应存放器内,使能发送。当DM9000A接收到外部网络送来的以太网数据时,首先检测数据帧的合法性,如果帧头标志有误或存在CRC校验错误,那么将该帧数据丢弃。否那么将数据帧缓存到内部RAM,并通过中断标志位通知S3C2440A,由S3C2440A对DM9000A接收到的数据进行处理。DM9000A包含一系列可被访问的控制状态存放器,这些存放器是字节对齐的,他们在硬件或软件复位时被设置成初始值。访问其存放器的方法是通过总线驱动的方式,即通过对IOR、IOW、AEN、CMD以及SD0-SD15等相关引脚的操作来实现。其中CMD引脚为高电平时
6、为写存放器地址,为低电平时为写数据到指定地址的存放器中。通过对这些存放器的操作访问,我们便可以实现对DM9000的初始化、数据发送、接收等相关操作。3 软件实现在嵌入式系统中linux 系统是目前最为流行的一款开放源代码的操作系统,它为用户提供了丰富、强大的网络功能,完善的内置网络是 Linux 的一大特点【3】。同时Linux 还免费提供了大量支持 Internet 的软件,并可以进行文件传输以及远程访问。本文就是通过在装有linux系统的PC机上配置编译内核、制作文件系统和编写编译应用程序,然后通过串口、并口、网口或者USB 下载到目标板上运行调试的。3.1 数据网络传输的具体实现嵌入式网
7、络系统的优势就在于它利用现有的网络系统进行数据传输,无需重新架设线路,本文将数据利用linux提供的网络编程接口Socket传送到PC机来显示【4】。1协议选择Linux中的网络编程通过套接字Socket实现,网络程序通过Socket和其它几个系统调用返回一个通信的文件描述符,可以将这个文件描述符看成普通的文件描述符来操作,这也正是设备无关性的好处。可以通过读写描述符实现网络之间的数据交流。套接字一共有三种类型:流式套接字,它提供可靠的、面向连接的通讯流,使用TCP协议,保证数据传输的正确性和顺序性;数据报套接字,它定义了一种无连接的网络效劳,数据通过相互独立的报文件进行传输,不能保证数据的可
8、靠、无过失,使用的协议是UDP协议;原始套接字,它允许使用IP协议,主要用于新网络协议的测试。由此可见选择什么类型的套接字与实际的控制平台要求有着密切的关系,当对传输数据要求准确性比拟强时应该选择TCP协议,当要求数据量比拟大或者要求系统实时性比拟好时,采用UDP协议。由于UDP将平安和排序等功能移交给上层应用来完成,极大地降低了执行时间,使速度得到了保证,所以UDP具有TCP所望尘莫及的速度优势,本文主要介绍UDP的程序设计过程【5】。2UDP网络编程基于UDP协议的网络编程分为两个方面:效劳器程序设计,客户端程序设计。1效劳器程序设计 创立一个Socket套接字。系统调用Socket( )
9、的用法如下:#include#includeint socket(int domain, int type, int protocol);其中,参数domain设置AF _ INET,以允许远程主机之间通信。参数type是套接口的类型:SOCK_STREAM或SOCK_DGRAM。SOCK_STREAM说明使用的是TCP协议,SOCK_DGRAM说明使用的是UDP协议。参数protocol设置为0。系统调用socket()返回一个套接口描述符来获得文件描述符,如果出错,那么返回1。 绑定一个IP地址。有了一个套接口以后,下一步就是把套接口绑定到本地计算机的某一个端口上。可以使用bind()来实
10、现。系统调用bind()的用法如下:int bind(int sockfd, struct sockaddr *my_addr, int addrlen);其中,参数sockfd 是由socket()调用返回的套接口文件描述符。参数my_addr是指向数据结构sockaddr的指针。数据结构sockaddr中包括了关于地址、端口和IP地址的信息。参数addrlen是sockaddr结构的长度,可以设置成sizeofstruct sockaddr。bind函数将本地的端口同socket返回的文件描述符捆绑在一起,如果出错,bind()也返回1。 循环接收数据,使用函数recvfrom。int r
11、ecvfrom(int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen);参数from是指向本地计算机中包含源IP地址和端口号的数据结构sockaddr的指针。参数fromlen设置为sizeofstruct sockaddr。系统调用recvfrom ()返回接收到的字节数,如果出错那么返回1。 关闭网络连接,使用close()调用关闭连接的套接口文件描述符:close(sockfd)。这样就不能再对此套接口做任何的读写操作了。2客户端程序设计 创立一个Socket套接字。
12、绑定一个IP地址。 设置对方的IP地址和端口等属性。 发送数据,使用sendto函数。int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);除了两个参数以外,其他的参数和系统调用send()时相同。参数to是指向包含目的IP地址和端口号的数据结构sockaddr的指针。参数tolen可以设置为sizeofstruct sockaddr。系统调用sendto()返回实际发送的字节数,如果出错那么返回1。关闭网络连接。4 结束语本文设计了一个基于以太网的嵌入式控制平台,介绍了软硬件的实现方法,能够完成数据在网络上的传输,为工业网络控制的实现打下了根底。5 参考文献【1】 Samsung Electr onics Co. Ltd. Users Manual of S3C2440【2】 龙新辉,陈俊杰、?基于嵌入式Linux 的以太网卡驱动设计与实现?
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员销售培训课件-酒店
- 全员安全知识培训总结课件
- 乡村振兴消防安全指南
- 值班员岗位面试实战指南
- 2025版痛性糖尿病周围神经病变药物治疗中国专家共识解读
- 安全三二一工作机制讲解
- 面试技巧大全与实战
- 中国人工智能市场现状分析
- 幼师课件小程序
- 克拉玛依安全培训课件
- 渤海银行公司业务部客户经理岗位技能竞赛题库含答案
- 2025年海洋平台维护五年优化报告
- 辽宁省沈阳市皇姑区2024-2025学年七年级上学期期末道德与法治试卷
- 辽宁省盘锦市兴隆台区2024-2025学年九年级上学期期末数学试题
- 2026年动物检疫检验员考试试题题库及答案
- 中国淋巴瘤治疗指南(2025年版)
- 2026年企业所得税汇算清缴流程与申报技巧手册
- 2025年云南省人民检察院聘用制书记员招聘(22人)考试笔试模拟试题及答案解析
- 疗伤旅馆商业计划书
- 2025年广西公需科目答案6卷
- GB/T 23720.3-2025起重机司机培训第3部分:塔式起重机
评论
0/150
提交评论