基于HMS30C7202嵌入式系统的通信程序设计

2008-06-04 14:21:43编辑:孙树宾 关键字:嵌入式系统  TCP  ARM  sockfd  客户端  recv  描述符  struct

  摘 要:由于嵌入式系统具有体积小,性能强,功耗低,可靠性高以及面向行业应用的突出特征,目前已经获得广泛应用。本文基于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!n", MAXDATASIZE, 0)) == -1)

  {

  perror("send");

  exit(1);

  } //向服务器发送数据

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

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

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

  4.总结

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

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

关键字:嵌入式系统  TCP  ARM  sockfd  客户端  recv  描述符  struct

来源: 微计算机信息 引用地址:http://www.eeworld.com.cn/afdz/2008/0604/article_736.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:步态加速度信号的无线采集系统设计
下一篇:Xilinx FPGA开发环境的配置

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ADI全新嵌入式系统发布,大大提升汽车音频系统性能

ADI今天推出一款嵌入式系统,用于为电动(EV)和混合动力汽车(HEV)产生发动机声音。通过采用ADSP-BF706数字信号处理器和电动汽车警示音系统(EVWSS)固件,北美和全球其他地区的汽车制造商能够满足电动和混合动力汽车低速行驶时对外部发动机声音的未来安全规范要求。 ADI解决方案包含完整的硬件和固件参考设计。利用ADSP-BF706或ADAU1450数字音频处理器扩展后,分别可用于高性能应用或入门级应用。ADSP-BF706也可用于制造车舱内的发动机声,帮助改善车主的驾驶体验。ADSP-BF706采用存储器映射四通道SPI存储器,能够更快速、更便捷地访问存储的用于产生发动机声音的音频文件。它最多可以同时访问24
发表于 2018-07-17 14:07:17
ADI全新嵌入式系统发布,大大提升汽车音频系统性能

嵌入式系统联谊会:物联网与嵌入式行业重点关注的方向

人工智能(AI)棋王Alpha Go战胜人类棋王之后,AI 技术便为大众所熟知,计算机技术上的突破和运算能力的提升,大大改善了AI实际能力,逐渐走入百姓生活,比如我们看到的人工智能音箱和人脸识别等应用。人工智能对处理能力和实时性有着极强的要求,边缘计算正在兴起,这更与物联网和嵌入式系统密不可分。身处这样一个时代,我们该如何看待这场即将到来的风暴呢?人工智能的应用日益普及,其中哪些细分市场会是物联网与嵌入式行业重点关注的方向呢?嵌入式与物联网研究和工程技术人员又该如何把握住人工智能所带来的重大机遇呢?近日,嵌入式系统联谊会第23次主题讨论会就这些问题,邀请业内知名专家和学者做了深入的探讨!本次会议由嵌入式系统联谊会、深圳北航新兴产业
发表于 2018-06-06 18:31:35
嵌入式系统联谊会:物联网与嵌入式行业重点关注的方向

嵌入式系统分析工具

能否及时高效地构建嵌入式系统,取决于软件开发人员在工作台上是否有合适工具来帮助完成开发工作。虽然预算通常受到限制,但有些工具是每位嵌入式软件工程师都必需的,这些工具可以帮助他们大幅减少构建、调试和验证其设计所需的时间。选择调试器开发人员的工作台上必备的第一种最重要工具是调试器。调试器的作用就如同包含应用代码的主机开发机与将要运行应用代码的目标嵌入式处理器之间的桥梁。调试器提供几种关键功能:提取已编译和链接的应用,并将其加载到目标存储器中。向目标处理器告知调试器已连接,并配置所有板载硬件调试模块和功能。负责设置软件和硬件断点。在调试过程中可用于读取寄存器和片上存储器。接收实时应用程序跟踪信息以用于调试应用程序。在很多实例中,开发人员
发表于 2018-05-30 17:31:41
嵌入式系统分析工具

赛普拉斯携先进汽车电子嵌入式系统解决方案

与众多媒体及业内人士共同探讨汽车电子市场发展趋势先进嵌入式系统解决方案的全球领先供应商赛普拉斯半导体公司举办媒体交流会,并独家赞助了由TechSugar主办的SugarTalk第二期汽车电子论坛。赛普拉斯多位高管就全球汽车电子发展趋势与行业媒体进行了深入的剖析和充分的沟通,并介绍了赛普拉斯先进的汽车电子解决方案。赛普拉斯汽车事业部高级副总裁布施武司先生还在论坛现场发表了关于“创新浪潮中的汽车:变与不变”的主题演讲,表达了赛普拉斯深耕中国,全力助推中国汽车电子市场发展的决心。 赛普拉斯汽车事业部高级副总裁布施武司在SugarTalk第二期汽车电子论坛上发表演讲赛普拉斯认为,在智能化、网联化与电动化等技术趋势的推动下
发表于 2018-05-20 09:53:18
赛普拉斯携先进汽车电子嵌入式系统解决方案

人工智能热潮下 物联网与嵌入式系统如何发展

  从谷歌的AlphaGo将人工智能推进大众视野起,在可预见的未来,人工智能会涉及到我们生活的各个方面,它们将会成为我们的朋友,成为我们的亲人,成为我们的伙伴。下面就随网络通信小编一起来了解一下相关内容吧。  人工智能的再次崛起并不是偶然的,主要得益于三大技术上的突破:算法、数据和算力,三者缺一不可,人工智能对处理能力和实时性有着极强的要求,边缘计算的兴起,这些与物联网和嵌入式系统密不可分。  身处这样一个时代,我们该如何看待这场即将到来的风暴呢?人工智能的应用日益普及,其中哪些细分市场会是物联网与嵌入式重点关注的方向呢?嵌入式研究和工程技术人员又该如何把握住人工智能所带来的重大机遇呢?  嵌入式系统联谊会第23次主题讨论会将安排
发表于 2018-05-10 21:02:50
人工智能热潮下 物联网与嵌入式系统如何发展

人工智能热潮下物联网与嵌入式系统如何发展-主题讨论会

从谷歌的AlphaGo将人工智能推进大众视野起,在可预见的未来,人工智能会涉及到我们生活的各个方面,它们将会成为我们的朋友,成为我们的亲人,成为我们的伙伴。人工智能的再次崛起并不是偶然的,主要得益于三大技术上的突破:算法、数据和算力,三者缺一不可,人工智能对处理能力和实时性有着极强的要求,边缘计算的兴起,这些与物联网和嵌入式系统密不可分。身处这样一个时代,我们该如何看待这场即将到来的风暴呢?人工智能的应用日益普及,其中哪些细分市场会是物联网与嵌入式重点关注的方向呢?嵌入式研究和工程技术人员又该如何把握住人工智能所带来的重大机遇呢?本次嵌入式系统联谊会主题讨论会将安排学术研讨会和企业家高峰论坛,邀请国内物联网和嵌入式系统知名
发表于 2018-05-09 11:59:09

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved