当前位置:首页 > 通信技术 > 通信技术
[导读]本文基于ARM720T内核的HMS30C7202嵌入式系统和Redhat9.0操作系统,对基于TCP/IP协议的嵌入式板机网络通信程序的设计与开发技术进行了研究,设计了程序,实现了PC机和板子之间的网络通信服务。

摘 要:由于嵌入式系统具有体积小,性能强,功耗低,可靠性高以及面向行业应用的突出特征,目前已经获得广泛应用。本文基于ARM720T内核的HMS30C7202嵌入式系统和Redhat9.0操作系统,对基于TCP/IP协议的嵌入式板机网络通信程序的设计与开发技术进行了研究,设计了程序,实现了PC机和板子之间的网络通信服务。
关键词:   HMS30C7202;TCP/IP;嵌入式系统;通信

引言

嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。由于嵌入式系统具有体积小,性能强,功耗低,可靠性高以及面向行业应用的突出特征,目前已经广泛的应用于军事国防,消费电子,网络通信,工业控制等各个领域。随着计算机技术与通信技术的发展,嵌入式系统的研究与开发有着越来越重要的实际意义。现阶段Internet的普及,使市场对嵌入式设备的网络功能和性能提出了更高的要求。8/16位单片机的速度和内存较难满足嵌入式设备的网络要求,因此32位RISC处理器越来越受到青睐。ARM公司自1990年正式成立以来,在32位CPU开发领域不断取得突破,已经处于业界领军地位,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功。

嵌入式系统的网络服务通信设备作为嵌入式系统重要的一个组成部分具有很强的实用性和研究价值,为远程的控制和网内信息传输提供了一个很好的手段。本文基于ARM720T内核的HMS30C7202嵌入式系统和Redhat9.0操作系统,对基于TCP/IP协议的嵌入式板机网络通信程序的设计与开发技术进行了研究,实现了板机之间的通信,为以后网络服务在实际环境中的应用打下了坚实的基础。

1.       HMS30C7202开发板简介

HMS30C7202是32位高集成度低功耗微处理器,是由ARM720T内核和其他一些外围接口器件组成,支持8K的数据与指令Cache,支持段式和页式存储的MMU,写缓冲器及AMBA接口。HMS30C7202采用0.25mm低功耗CMOS工艺片内电压2.5V,I/O支持3.3V电压,采用了256管脚QFP/BGA封装。HMS30C7202片上资源十分丰富,具有极高的集成度,非常适用于嵌入式系统应用。主要应用于PDA,智能电话,个人音频设备等场合。芯片HMS30C7202支持的内外围设备包括多通道DMA(直接存储器存取),3个定时器和一个看门狗定时器,智能中断控制器,存储器控制器(如ROM,Flash,SRAM,SDRAM),电源管理单元LCD控制器,定时时钟(32 .768kHz晶振),红外通讯接口(支持SIR),4个串口(兼容16C550),PS2外部键盘/鼠标接口,2通道PWM接口,矩阵键盘控制接口(8*8),普通I/O口,MMC/SMC卡接口,2个CAN接口,USB接口,片内ADC接口模块(可用于电池检测,音频输入,触摸屏),片内DAC接口模块(8bit立体音频输出),3个PLL时钟JTAG调试接口等。

网络传输是现在最为重要的数据传输途径之一,由于HMS30C7202本身并没有以太网控制模块,所以需要一个与之匹配的控制芯片,比如CS8900,CS8900是单芯片全双工的以太网控制器,配合必要的数字和模拟电路合成了完整的以太网电路,其主要结构包括ISA总线接口,802.3MAC,buffer,串行EEPRCM接口和带有10BABE—T和AUI模拟前端。HMS30C7202通过操作CS8900的控制寄存器和读写CS8900的内部数据寄存器,实现网络的链路层连接。                             

(CS8900与开发板连接示意图)

2 .  TCP/IP协议简介

TCP/IP协议是一组包括TCP (Transfer Controln Protocol)协议和IP(Internet Protocol)协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。

     绝大多数的客户-服务器应用程序都使用TCP或UDP

TCP(传输控制协议)以连接为基础,也就是说两台电脑必须先建立一个连接,然后才能传输数据。事实上,发送和接收的电脑必须一直互相通讯和联系。

UDP(使用者数据报协议)它是一个无连接服务,数据可以直接发送而不必在两台电脑之间建立一个网络连接。它和有连接的TCP相比,占用带宽少,但是你不知道你的数据是否真正到达了你的客户端,而客户端收到的数据也不知道是否还是原来的发送顺序。

在此次程序的编写和调试过程中我们应用TCP协议。

3.       程序设计

此程序设计是自动售货机实现网络化的重要基础,是校园网络化建设的组成部分之一。现阶段高校内部自动售货机多为投币消费模式,货币识别系统是实现此种消费模式的重要硬件设备,此设备成本高,稳定性差,制约了自动售货机的普及。通过在自动售货机中嵌入ARM,并实现嵌入式系统的网络化,可以实现自动售货机的刷卡式消费,而且可以远程查询自动售货机的状态信息,使管理者及时掌握自动售货机的状态。所以此程序的设计实现具有很强的现实意义。

此程序设计是基于客户机和服务器模式进行的(如下图)。服务器上建立套接字,绑定后用listen()函数监听绑定端口,通过accept()函数准备接收或发送信息。客户端同样建立套接字,但是不绑定端口,直接通过connect()函数与服务器建立连接,进而发送或接受数据。

 


本文分别以ARM板为服务器端和客户端来介绍具体程序。分别实现了两种模式下的TCP通信。即:ARM板作为服务器端,PC机作为客户端。ARM板作为客户端,PC机作为服务器端。用以太网口连接,实现信息的通讯。

模式一:ARM板作为服务器端,PC机作为客户端。按流程编写具体程序如下:

#define MYPORT 3490  //服务器监听的端口

#define BACKLOG 10  //能够同时接受的连接数量

int sockfd,newfd; //在sockfd上进行监听,用newfd接受新的连接

struct sockaddr_in my_addr;  //存放自己的地址信息

struct sockaddr_in their_addr;  //存放连接者的地址信息

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)   

{

       perror("socket");

       exit(1); 

       }  //建立套接字,判断是否出错,如果出错,返回出错信息

my_addr.sin_family = AF_INET;   //主机字节顺序

   my_addr.sin_port = htons(MYPORT);  //网络字节顺序

 my_addr.sin_addr.s_addr = INADDR_ANY;  //将本机IP自动填充

   bzero(&(my_addr.sin_zero),8);  //结构其他部分清零 

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)

{

 perror("bind");

   exit(1);

}  //绑定本地IP地址和端口

if (listen(sockfd, BACKLOG) == -1)   

 perror("listen"); 

 exit(1); 

   }  //监听端口

while(1)

{

sin_size = sizeof(struct sockaddr_in); 

if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) { 

 perror("accept"); 

 continue; 

 }  //返回新的套接字描述符,就是跟远程计算机的连接,第一个套接字描述符仍然在机器原来的哪个端口listen()

if (!fork())  //建立子进程处理连接

if (numbytes=(recv(new_fd, buf, maxdatasize,0)) == -1)

 {

  perror("recv");

 exit(1);

    }  //接收客户端发送的信息进缓冲区

               close(newfd); //关闭套接字

      程序实现在ARM板上监听3490端口,准备接收建立连接的远程计算机送来的信息。printf("Received: %s",buf);可以显示缓冲区中远程计算机送来的信息。

模式二:ARM板作为客户端,PC机作为服务器端。按流程编写程序如下:

#define PORT 3490   //定义远程端口信息

#define DEST_IP "210.43.8.21"  //定义远程计算机IP信息

struct sockaddr_in their_addr;  //定义结构存放远程计算机地址

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

            perror("socket"); 

            exit(1); 

        }  //建立套接字

if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1)

            perror("connect"); 

             exit(1); 

        }  //连接远程计算机

if ((send(sockfd, "hello,my world! ", MAXDATASIZE, 0)) == -1)

            perror("send");

            exit(1); 

        }  //向服务器发送数据

     close(sockfd);  //发送完成关闭套接字

     程序实现了从ARM板通过3490端口连接远程计算机,连接成功后发送数据。

此程序实现了板机之间的信息通讯,为自动售货机与服务器之间的通信打下了坚实基础。为自动售货机的网络化提供了一个可行的手段。

4.总结

    TCP/IP协议已成为目前最为重要的以太网协议,TCP通信已经成为嵌入式系统有线通信的主要方式。ARM板既可以作为客户端也可以作为服务器端,这种通信方式应用广泛,具有很高的研究价值。

    本文作者创新点在于对基于TCP/IP协议的嵌入式板机网络通信程序的设计与开发技术进行了研究,给出了基于TCP协议的板机通信程序的编写方法,实现了PC机与ARM板的通信。为以后基于网络的嵌入式系统的应用和通讯程序开发打下了坚实的基础。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

Lua RTOS 是一个实时操作系统,设计在嵌入式系统上运行,对 FLASH 和 RAM 内存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平台,并可以轻松移植到其他32位...

关键字: Lua RTOS 操作系统 嵌入式系统

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的d...

关键字: 异步收发 传输器 嵌入式系统

通信技术

120744 篇文章

关注

发布文章

编辑精选

技术子站

关闭