基于嵌入式通信微处理器S3C44B0X在Socket通信系统中的应用

发布者:Serendipity22最新更新时间:2023-07-24 来源: elecfans关键字:嵌入式通信  微处理器  S3C44B0X 手机看文章 扫描二维码
随时随地手机看文章

嵌入式系统是指将应用程序操作系统与计算机硬件集成在一起的系统?它以应用为中心?以计算机技术为基础,而且软硬件可以裁剪,因而是能满足应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统。


本文给出一种适合于中/低端应用的通信平台设计方案,它可支持Ethernet网络之间的数据传输,并且具有RS232、RS485、USB等接口。文中围绕嵌入式uClinux环境设计了基于嵌入式通信微处理器S3C44B0X的硬件通信平台,从而实现了嵌入式SOCKET通信。


1 、嵌入式网络通信系统结构

作为一类特殊的计算机系统, 嵌入式系统通常由嵌入式处理器嵌入式外围设备。嵌入式操作系统和嵌入式应用软件等几大部分组成?嵌入式处理器是嵌入式系统的核心部件,它可分为嵌入式微处理器?嵌入式微控制器?嵌入式DSP(DigitalSignal Processor)和高度集成的嵌入式SoC(System on Chip)。嵌入式外围设备是指嵌入式硬件系统中除中心控制部件以外的存储、通信、保护、调试、显示等其它辅助部件。嵌入式操作系统一般在比较大型或需要多任务的应用场合才考虑使用,它可方便嵌入式应用软件的设计,大大提高嵌入式系统的功能,但同时也要占用宝贵的嵌入式资源。嵌入式应用软件和普通的应用软件有一定的区别,它是针对特定的实际专业领域,基于相应的嵌入式硬件平台能完成用户预期任务的计算机软件。


嵌入式处理器有许多种流行的处理器核,本文主要介绍采用SAMSUNG公司基于ARM公司32位RISC的ARM7TDMI核的S3C44B0X处理器来进行SOCKET通信的软硬件平台的设计和实现方法。


S3C44B0X是高性价比、高性能的微控制器,它采用ARM7TDMI核,可工作在66MHz ARM7TDMI是一种32位嵌入式RISC处理器,但也配备了16位压缩指令集Thumb。它支持片上调试,允许处理器响应调试请求暂停,芯片内的增强型乘法器(multiplier)可进行两个32位数相乘从而直接产生64位结果,也可为嵌入式ICE硬件提供片上断点和调试点支持。此外,它还可以提供三级流水线及冯?诺依曼结构。实际上,S3C44B0X已在ARM7TDMI内容基础上扩展了一系列完整的通用外围器件?图1所示是一种嵌入式网络通信系统的硬件体系结构。


2 、外围电路设计

作为优秀的网络控制器,基于S3C44B0X处理器的系统必须要有一个与之匹配的控制芯片。这里,选用了Cirruslogic公司的CS8900A。CS8900A是一个单芯片全双工的以太网解决方案,片内集成了用于完成以太网电路所必需的所有模拟和数字电路。图2为系统中的CS8900A以太网接口电路?图中的信号发送和接收端通过网络隔离变压器和RJ45接口接入传输媒体。另外,为了系统能够正常工作,还需要外接一个20MHz的晶振。


3 、基于uCliunx的SOCKET通信

本系统的软件是基于嵌入式操作系统uClinux而设计的?uClinux是一个完全符合GNU/GPL公约的操作系统,它与UNIX系统兼容,其代码完全开放?uClinux是在标准Linux基础上进行适当裁剪和优化后的操作系统,uClinux是一个高度优化?代码紧凑的Linux的嵌入式子集?虽然体积很小,但仍然保留了Linux的大多数优点,如:稳定?良好的移植性;优秀的网络功能;对各种文件系统的完备支持,以及标准丰富的API等?uClinux是专门面向没有存储器管理单元(MMU)的处理器的嵌入式操作系统,并且专为嵌入式系统做了许多小型化工作,它可以直接在Flash上运行,也可以加载到内存中运行?u-Cliunx带有一个完整的TCP/IP协议,同时也支持其他许多网络协议,对于嵌入式系统来说,它是一个网络完备的操作系统,因此得到了广泛的应用。


为了实现基于uClinux的应用系统的开发,建立或拥有一个完备的uCliunx开发环境是十分必要的?基于uClinux操作系统的应用开发环境一般由目标系统硬件开发板和宿主PC机构成3?通常需在安装有Linux的宿主PC机上安装交叉编译器,以把用户应用程序编译成目前uClinux只支持的flat格式的可执行文件和编译操作系统内核?目标硬件开发板用于运行操作系统和系统应用软件?目标硬件开发板和PC宿主机之间一般通过串口?并口或以太网接口来建立连接?本文SOCKET通信使用的软件开发及仿真环境如图3所示。


SOCKET即“套接字”,表示网络通信进程的ID?最常用的有流式套接字和数据报套接字两种?在Linux中,分别称为“SOCK STREAM”和“SOCKDGRAM”?经裁剪的uClinux保留了Linux中的大部分SOCKET库函数?基于S3C44B0X处理器的嵌入式SOCKET通信所要调用的主要库函数如下:

(1)SOCKETint SOCKET(int domain int type int proto-col)

此函数用来建立一个新的SOCKET,以通知系统建立一个通信端口?函数中的domain参数用于指定使用何种地址类型;type参数用于指定套接字类型;protocol参数通常为0,表示使用默认协议。

(2)bind intbind(int sockfd,struct sockaddr*myaddr,int addrlen)

bind函数可把SOCKET返回的套接字端口与网络上的物理位置相关联?其中sockfd参数是函数SOCKET返回的套接字描述符;myaddr参数是本地地址;ad-drlen参数是套接字地址结构的长度?服务器和客户机都可以调用函数bind来绑定套接字地址,但一般是由服务器调用函数bind来绑定自己的公认端口号。

(3)listenint listen(int sockfd,int backlog)

利用该函数可以使SOCKET端口接受从客户机发送来的连接请求backlog参数是所能接受的客户机的最大数目?对SOCKET?bind?listen三个函数的综合调用最终可在服务器上产生一个能接受客户机请求的*文件描述符sockfd。

(4)acceptint accept(int sockfd,struct sockaddr*address,int*address_len)

当有客户机发出连接请求时,此函数初始化这个连接?其中参数address用来存储客户机的信息,此信息由accept填入?当与客户机连接时,客户机的地址与端口将填到此处;addresslen是客户机地址长度的字节数,也由accept填入。

(5)connectint connect(int sockfd,struct sockaddr*address,size_t address_len)

客户机调用socket建立传输端口后,接着将调用connect函数来建立与远程服务器相连的连接线路?此函数的参数调用同bind。


本文设计的Socket通信采用server/client模式,即服务器端的应用程序用于接受客户端的连接请求。接收客户端的信息、处理客户端的计算请求、向客户端发送计算结果以及应答信息等。客户端的应用程序用于申请与服务器的连接、向服务器发送计算请求、处理服务器发回的计算结果和其它信息。


服务器在创建一个socket后,接着会将该socket与本地地址/端口号进行捆绑,成功之后就在相应的socket上*,当accpet捕捉到一个连接服务请求时,即完成一个新的连接,稍后可向客户端发送数据?


客户端代码相对来说要简单一些,首先通过服务器域名获得其IP地址,然后创建一个socket,接着调用connect函数来与服务器建立连接,连接成功之后再接收从服务器发送过来的数据,最后在通信结束后关闭socket。


mso-ascii- mso-hansi-

char buffer[256];

struct sockaddr_in addr;

struct hostent *hp;

struct in_addr in;

struct sockaddr_in local_addr;

if (argc 《 2) return;

if(!(hp=gethostbyname (argv[1]))){

fprintf(stderr,"Can't resolve host.n");

exit (1);

}if ((s = socket(AF_

INET,SOCK_STREAM,0)) 《0){

perror ("socket");

exit (1);

}

bzero (&addr,sizeof (addr));

addr.sin_family = AF_INET;

addr.sin_port=htons((unsigned short)atoi(argv[2]));

hp = gethostbyname(argv[1]);

memcpy(&local_addr.sin_addr.s_addr,hp-》h addr,4);

in.s_addr = local_addr.sin_addr.s_addr;

printf ("Domain Name %sn" argv

printf ("IP address :%sn",inet_ntoa (in));

printf("%s,%sn",hp-》h_name,argv[2]);

addr.sin_addr.s_addr=inet_addr(hp-》h_name);

if connect(s,(struct sockaddr *)&addr,sizeof (addr))《0){

perror ("connect");

exit (1);

}

recv (s,buffer,sizeof (buffer),0);

printf ("%sn",buffer);

while(1);

bzero(buffer,sizeof (buffer));

read (STDIN_FILENO,buffer,sizeof(buffer));

if (send (s,buffer,sizeof (buffer),0)《0){

perror ("send");

exit (1);

}

}

}


4 、结束语

设计开发了基于S3C44B0X的以太网通信系统,并利用uClinux操作系统强大的网络功能实现了Socket通信。由于uClinux目前只支持flat格式的可执行文件,因此本设计是在先建立好uClinux开发环境的情况下,把用户自行开发的应用程序通过宿主PC机上的交叉编译器转化为flat格式,然后再通过FTP添加到目标硬件开发平台上运行的。文中的客户端应用程序已经在基于ARM7TDMI核的S3C44B0X处理器的嵌入式开发平台上成功运行,并成功地和宿主PC机的服务器端应用程序实现了Socket通信。当然,也可以把目标硬件开发平台当作服务器端,而把宿主PC机当作客户端来进行双向文件传输。


关键字:嵌入式通信  微处理器  S3C44B0X 引用地址:基于嵌入式通信微处理器S3C44B0X在Socket通信系统中的应用

上一篇:基于S3C44BOX处理器和Linux操作系统实现物流PDA无线终端的设计
下一篇:基于在S3C2410处理器平台上实现Windows CE.NET的应用设计

推荐阅读最新更新时间:2024-11-05 19:50

IBM在微处理器置入动作偏差检测电路
  Power微处理器一直是IBM的重要产品之一,也是象征着IBM在半导体技术飞进的指标。采用65纳米制程(10层Cu/low-k布线)的Power 6微处理器,为一双处理核心的架构,最大工作频率为5GHz,而芯片面积则是341mm2,内建缓冲器容量是8MB。IBM在芯片架构中,利用分布式架构嵌入了动作偏差的电路检测处理器。实际的作法是,IBM将CPM(critical path monitor)电路放置在芯片内部核心区以及芯片边缘等等的24个位置,检测电路配置安排方面,Power 6微处理器双核心区域共有16个,面积为90×36μm2,非核心区域则有8个,面积为90×48μm2,利用这些电路来对所在区域的噪音、频率偏差、制程偏差进
[焦点新闻]
基于ZigBee的智能家居安全监控系统研究
0 前言 智能家居又称智能住宅,正朝着具备无线远程控制、多媒体控制、高速数据传输等功能的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网络。目前,传输网络多采用综合布线技术,限制了系统的应用场所,而且费用较高。采用无线方式构建灵活便捷的智能家居安全监控系统,成为当前的研究热点。 目前,应用于智能家居的无线通信技术主要包括:Ir2DA红外线技术、蓝牙技术和ZigBee技术等。IrDA属于短距离、点对点的半双工通信方式,使用不便且失误率高,不适用于家庭的组网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点较多的家居网络应用。 本研究通过采用传输范围适中、安全可靠、网络容量较大的ZigBee技术,设计智能家居
[单片机]
基于ZigBee的智能家居安全监控系统研究
新型CPU及微处理器低压大电流可编程输出电源设计
随着现代电子产品,特别是便携式电子产品在噪声、干扰及功耗方面的要求不断提高,许多新型微处理器、CPU、MCU和DSP等系统核心器件的供电电压要求越来越低,但为了能够处理更多的接口和外设数据。其电流要求则相对增大。到2007年,PC机将要求DC/DC转换器能在O.95V时提供高达200A的电流。为此,飞兆半导体公司开发出以多个模块组成的分布式电压凋节模块(VRM),其中每个模块都能提供高达每相40A的电流,且效率超过80%。本文介绍的FAN5240就是飞兆半导体公司为CPU主电源设计推出的相同步补偿式单输出PWM控制器集成电路。该芯片可通过其自身携带的5位数模转换器来对电路的输出电压进行编程设置。其主PWM输出电压的设置范围为O.9
[电源管理]
复位监控知多少
本文旨面向初级工程师或是刚刚升迁的而又想掌握一些技术的管理者们。 微处理器是一个复杂又单一的东西。它启动的方式一成不变,严格、准确地重复地执行着函数功能。我们可以当微处理器已经稳定进入启动程序后,发送一个复位操作来让微处理器执行正确的程序指令。当复位信号结束,微处理器的部分寄存器(根据微处理器型号而不同)将会重新初始化为默认值。微处理器也会从一个固定的地址重新开始执行。因此,设计一个复位方案对于避免系统锁死、执行程序出错或者是非易失性flash读写错误导致的系统崩溃将是非常致关重要的。 其实,复位电路的设计也可以非常简单,毕竟其功能比较单一:只需要当微处理器的上电时,保持复位状态,而当电压等条件满足设计要求时,才结束保持复位状态。
[单片机]
复位监控知多少
基于SEP4O2O微处理器的动作控制MP3的设计
   0引言   动作识别是一个很热门的话题。苹果公司继推出具有轰动效应的多点触控技术后又筹备申请自己的动作识别专利。动作的识别简单的说就是利用加速度传感器,检测在空间上的速度变化,通过算法,提取动作。动作识别在很多方面都有应用,比如Wii、手机感应游戏、四桨飞行器等,但是目前很少甚至没有将其用在MP3控制上的。当今的电子产品的一大潮流就是用动作控制。试想一下一个没有任何触摸、机械按键的MP3,只要你前后左右的晃动就能进行所有最基本的控制操作,既灵动又时尚,这应当是一种全新的操作体验。本文将探讨如何设计这种通过动作来进行正常控制的MP3。    1硬件平台   1.1SEP4020嵌入式处理器   本文所述驱动程序基于SE
[手机便携]
基于SEP4O2O<font color='red'>微处理器</font>的动作控制MP3的设计
基于STM32F4x9的LCD显示
随着人机界面(GUI)在医疗、工业以及消费电子各应用领域需求的日益增长,高集成度、高性能的TFT 液晶显示方案成为电子产品设计开发的重要组成部分。在无内置液晶控制器的情况下,单片机与具有内置控制器的液晶板之间往往采用串行或并行的总线接口连接,受限于连接总线的数据传输速度,难以支持较高的显示分辨率和画面质量。 意法半导体推出了基于ARM Cortex-M4 内核的STM32F4x9 微处理器,借助内置的LCD-TFT 显示控制器和Chrom-ARM 图形加速器,使SVGA 高分辨率和高品质显示画面质量成为可能。本文围绕STM32F4x9 微控制器完成了液晶显示的硬件设计,并介绍了基于这一硬件平台以及STemWin 的软件应用开发
[单片机]
基于STM32F4x9的LCD显示
ARM微处理器中的常量
学习ARM微处理器中的常量时,一直很懵懂,网上查了一下,终于弄明白,记录下来先。 书上的原话是: “常量是一个8位的常数经循环右移偶数位(0、2、4、8、…、26、28、30)得到。ARM指令时固定的32位指令编码,不可能直接用32位表示立即数,采用上述间接方式表示的立即数在指令编码中需要12位(其中8位表示常数,4位表示循环右移)。这样一来,不是每一个32位常数都是合法的立即数,只有通过上面的构造方法得到的才是合法的立即数。 合法常量:0xFF、0×104、0xFF000、0xFF000000、0xF000000F。 非法常量:0×101、0×102、0xFF1、0xFF04、0xFF003、0xFFFFFFFF、0xF0000
[单片机]
基于嵌入式Linux的无纸记录仪通信设计
    在工业自动化控制系统中,记录仪起着十分重要的作用,它可以实时采集、监测和记录一些影响工艺过程和产品质量的重要参数,被广泛应用于石化、冶金、电力、机械、医药、轻工业等行业。随着电子技术的不断发展,记录仪已从传统的有纸模拟式发展到如今的无纸数字式 。与传统的有纸记录仪相比,无纸记录仪无机械磨损、显示直观、使用方便、故障率低和设备耗材少,因此被越来越多的应用于工业控制领域。       随着工业过程自动化的高速发展,企业对无纸记录仪提出了越来越高的要求,基于8位单片机的无纸记录仪的功能已远远达不到用户的要求。嵌入式ARM微处理核的32位RISC处理器以其强大的性能丰富的接口以及优异的性价比等诸多优势,而被越来越多的应用于无纸记录
[嵌入式]

推荐帖子

请问IIs和IIC有什么区别?
请问IIs和IIC有什么区别?请问IIs和IIC有什么区别?一直没有弄明白。。。。I2S(Inter—ICSound)是用来传输音频的,对时钟要求非常严格。I2C(Inter-IntegratedCircuit)类似UART/SPI,两线制,比如EEPROM很多都使用I2C。区别。。。。是没有啥共同点好吧,这还用区别吗,应用是完全不同的,你要是I2S和SPI区别一下还差不多。完全不同的两种通讯方式,你记住字母不同就行了。I2S主要用于音频I2C是通用总线,用来传输数据。百度
huangyan1127 单片机
频率计
小弟要做个频率计用32测外部输入频率没接触过32现在又急着用那位大哥大姐有这个程序或者有这方面的程序请发我下1501806575@qq.com万分感激。频率计被测频率是什么信号?电流还是电压还是别的?什么样的波形?输入幅值有多大?被测信号的频率范围是多少?要求测量精度是多少?等等这些基本要素都没有,怎么就知道32一定能行?拿到32程序就能做频率计了吗?俺不信。我要做的就是简单的测下测下几khz范围内的频率,现在只有块32在手上所以就想用下这个了应该是可以的吧,
liubuwei8888 stm32/stm8
【转】采购经验分享
虽然不算是资深的老采购员,但从事采购工作也小有几年,写下这些东西,希望老采购员们给指点指点,也希望能给新采购员点帮助刚做采购的时候,在一家小公司负责零件采购,接手的时候有三家供应商同时供应,采购比例分别是甲:55% 乙:25% 丙:20%.由于甲的态度比较好,交期也保证,很快我就取消了乙丙的单子,全部由甲来供应。乙和丙停掉后不久,有一次甲方的产品出了问题,耽误了公司的事。老板大发雷霆,说:原来用三家供应商,就是让他们自己竞争,你倒好,就用一家了,它能好好服务吗?虽然被骂了,可以也觉得
wstt 淘e淘
【挖电源】TOP系列开关电源制作
以前不懂开关电源怎么调试,以为把变压器饶好一定的砸数就完事,可是做出来的电源总是不行,要不就是带负载不行,或者是启动不了,偶尔烧东西然后才知道,TOP算是反激式的需要调整初级电感量的,原来如此!这个是用公司里的EE25的磁芯饶的AC85~265V输入,5V,2。5A输出【挖电源】TOP系列开关电源制作好东西,楼主给力啊不知道楼主发这个意义何在,能讲讲开关电源制作流程么。好的TOP原理图我还是参考PDF典型的图然后输入滤波电容的选取(老师说经验值可以按每W/3UF)来
蓝雨夜 模拟与混合信号
C2000 Piccolo LaunchPad 资料
C2000PiccoloLaunchPad资料挺全的顶顶:rose:真的够全了。好资料资料不错。顶一个很全面的资料,感谢啦资料齐全了。不错。顶一个真是学习资料大全啊呵呵太经典了,非常全啊顶上很不错啊dddddddddddddddddddddddd不错啊!!顶起!!回复楼主qinkaiabc的帖子非常的全面好帖子必须顶一个大补大补,谢谢楼主谢谢楼主分享可惜全是英文,有中文就更加好給力好全啊牛逼很
qinkaiabc 微控制器 MCU
一本RF的好书 -------《无线通信射频电路技术与设计》
本帖最后由dontium于2015-1-3015:23编辑 刚刚下载的,看了后觉得非常好,可惜是逐页的图片,正在整理。转换为PDF时,不知道这个图片是什么格式,Acrobat不认,所以只有一页一页地将图片编辑---另存为……---选择文件类型……,然后再一页一页地“插入”PDF文件中。等我慢慢整理,献给大家个好的文档,以下回复可见,给大家一个挣工分的机会Timson,如果您要查看本帖隐藏内容请回复Timson,如果您要查看本帖隐藏内容请回复
dontium RF/无线
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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