当前位置:首页 > 通信技术 > 通信技术
[导读]本文基于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板的通信。为以后基于网络的嵌入式系统的应用和通讯程序开发打下了坚实的基础。

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

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

2024年,嵌入式系统将走向何方?如何才能走在趋势的前沿?从工厂到家电,从医院里昂贵的医疗设备,到随处可见的可穿戴设备,我们身边的联网设备越来越多,生活更加绿色低碳,嵌入式系统功不可没。ST于3月19日成功举办STM32...

关键字: 嵌入式系统 可穿戴设备

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

【2024年3月25日,德国慕尼黑和瑞典瓦尔贝格讯】不同汽车的独特性给汽车零部件供应商和OEM厂商等带来了挑战,因为每辆车的驾驶方式、驾驶地点、驾驶者、设计、用途以及道路和交通状况都是独一无二的。为保证每辆汽车都能正常运...

关键字: AI 机器学习 嵌入式系统

GD32F303作为一款先进的微控制器,在嵌入式系统领域有着广泛的应用。本文旨在深入探究GD32F303的发布时间,并分析其背后的技术背景和市场环境。通过对相关资料的梳理和分析,本文揭示了GD32F303发布的历史背景、...

关键字: GD32F303 微控制器 嵌入式系统

物联网控制模块作为连接物理世界与数字世界的桥梁,在现代科技领域扮演着至关重要的角色。本文将详细探讨物联网控制模块的定义、功能、应用领域以及未来发展趋势,旨在为读者提供全面而深入的了解,并展望其在未来物联网产业中的广阔前景...

关键字: 物联网 控制模块 嵌入式系统

以下内容中,小编将对嵌入式开发的相关内容进行着重介绍和阐述,希望本文能帮您增进对嵌入式开发的了解,和小编一起来看看吧。

关键字: 嵌入式 嵌入式开发 嵌入式系统
关闭
关闭