嵌入式串口通信.docx
《嵌入式串口通信.docx》由会员分享,可在线阅读,更多相关《嵌入式串口通信.docx(25页珍藏版)》请在冰豆网上搜索。
![嵌入式串口通信.docx](https://file1.bdocx.com/fileroot1/2022-10/28/8df0671d-ff7b-47a0-81c3-81214a9a8982/8df0671d-ff7b-47a0-81c3-81214a9a89821.gif)
嵌入式串口通信
嵌入式串口通信
题目:
PC机与嵌入式开发板串口通信的
设计与编程实现
摘要
随着嵌入式系统的进展和大规模应用,为了提升系统的整体性能,必须实现PC机和嵌入式运算机之间的通信。
在实际开发应用中,串口通信是不可缺少的部分,是目前嵌入式系统与PC机之间一种专门重要而且普遍应用的通信方式。
本文通过基于2410F的嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串口通信的硬件电路和软件实现方法。
该系统的硬件主体设计以三星S3C2410处理器为核心操纵器件,通过与运算机串口间的连接,实现在ARM平台上与外部设备通信的差不多功能。
关键词:
嵌入式系统;2410F;串口通信;Linux系统
ABSTRACT
Alongwiththedevelopmentofembeddedsystemandapplicationscale,thecommunicationbetweenthePCandembeddedcomputermustbeachievedinordertoimprovethewholeperformanceofthesystem.Intheactualdevelopmentapplication,serialcommunicationisanessentialpart.Anditisaveryimportantanduniversalmode.Inthispaper,basedonthe2410Ftherealizationofembeddedserialcommunication,accordingtotheembeddedsystemsoftwareandhardwarestructure,amoredetaileddescriptionoftheserialcommunicationhardwareandsoftwaremethods.TheprincipalpartofthehardwareinthissystemischieflycontrolledbyS3C2410processor,whichisproducedbySAMSUNGCompany,communicatedwiththeserialofcomputer,thissystemrealizesthebasedfunctionofvisitingexteriordevice,whichisonthebasedofARM.
Keywords:
embeddedsystem;2410F;serialcommunication;Linuxsystem
1绪论
目前,先进的嵌入式运算机以其优良的品质、高可靠性及模块化,广泛地应用于工业操纵、航空航天、医疗、智能外表、通信、数控、自动化生产设备、数据采集等领域。
在实际应用中,有时需要借助微机强大的数据处理能力和丰富的软件资源,使得组成的系统功能更为强大。
为了提升系统的整体性能,必须实现PC机和嵌入式运算机之间的通信。
在数据采集的实际开发应用中,串口通信是不可或缺的一部分,也是目前嵌入式系统与PC机之间最重要,应用最普遍的通信方式。
1.1串口通信概述
所谓串口通信,是指外设和运算机间使用一根数据信号线〔另外需要地线〕,数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时刻长度。
串口传输是二进制代码序列在一条信道上以位〔元码〕为单位,按时刻顺序且按位传输的通信方式。
串行传输时,发送端按位发送,接收端按位同意,同时还要对所传输的位加以确认,因此收发双方要采取同步措施,否那么同意端将不能正确区分出所传输的数据。
串口通信不但能实现运算机与嵌入式开发板之间的数据传输,而且还能实现运算机对嵌入式开发板的操纵。
假设采纳一般单片机,对外部设备的访问就需要利用复杂的汇编语言进行编程或者使用C51自己编写设备的初始化以及读写访问程序,如此的过程不仅复杂,而且不利于大规模的开发和设计。
ARM与8051等一般单片机相比,具有开发简单、灵活,而且性能稳固、功能易于扩展等一系列优势,因而在汽车电子、手持设备、无线领域和航空航天等嵌入式系统中得到广泛的应用。
将Linux移植到ARM嵌入式处理器后,能够利用操作系统中提供的系统调用把串口及其他外设当成一般文件进行操作,读写方便,因此进行相应开发能够提高系统编程效率,而且还能够简化调试的复杂程度。
1.2串口通信的原理
串行端口的本质功能是作为CPU和串行设备间的编码转换器。
当数从CPU通过串行端口发送出去时,字节数据转换为串行的位。
在接收数据时,串行的位被转换为字节数据。
串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须开释资源(关闭串口)。
1.3串口通信的开发工具
本次开发采纳的硬件平台是ARM920T处理器的2410F,开发系统平台是Linux系统。
1.3.12410F硬件平台简介
2410F是基于三星〔samsung〕ARM9嵌入式处理器S3C2410处理器的一款开发平台,〝F〞指基于2410的第六代开发套件。
系统运行在202M的主频下发挥杰出的性能。
能够完成MP3,MPG,VOIP等工作。
2410资源丰富适合ARM处理器的初学者学习使用。
2410F上面使用的核心模块体积小资源丰富,IO充足还能够应用在二次开发的产品当中。
这款设备要紧包括核心板与底板两个部分,核心板采纳6层PCB设计、底板采纳2层PCB板设计,核心器件是基于目前业内主流使用的SAMSUNGARM9S3C2410处理器,主频202MHz,配套的储备器,网卡等设备;底板要紧是各类型的接口。
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采纳0.18um制造工艺的32位微操纵器。
该处理器拥有:
独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD操纵器,NAND闪存操纵器,3路UART,4路DMA,4路带PWM的Timer,I/O口,RTC,8路10位ADC,TouchScreen接口,IIC-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。
S3C2410处理器最高可运行在203MHz。
它是基于ARM920T内核的16/32位RISC处理器,要紧应用于嵌入式系统中。
S3C2410拥有强大的数据处理能力,又有着低成本,低功耗等优点,在各种手持及移动设备上的应用越来越广泛,基于其平台的程序功能也越来越复杂。
因此,在其平台上架构多线程的操作系统已成为越来越多系统设计者的诉求,本文介绍多线程在S3C2410上的具体实现过程。
1.3.2ARM简介
ARM〔AdvancedRISCMachines〕,既能够认为是一个公司的名字,也能够认为是对一类微处理器的通称,还能够认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,要紧出售芯片设计技术的授权。
目前,采纳ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已遍及工业操纵、消费类电子产品、通信系统、网络系统、无线系统、军用系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器70%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直截了当从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其ARM微处理器核,依照各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者所同意,更具有竞争力。
ARM微处理器一样具有如下特点:
〔1〕体积小、低功耗、低成本、高性能;
〔2〕支持Thumb(16位)/ARM(32位)双指令集,能专门好的兼容8/16位器件;
〔3〕大量使用寄存器,指令执行速度更快;
〔4〕大多数数据操作都在寄存器中完成;
〔5〕寻址方式灵活简单,执行效率高;
〔6〕指令长度固定。
1.3.3Linux系统简介
Linux是一类Unix运算机操作系统的统称。
Linux操作系统也是自由软件和开放源代码进展中最闻名的例子。
Linux一样有四个要紧部分:
内核、Shell、文件结构和有用工具。
〔1〕Linux内核
内核是系统的心脏,是运行程序和治理像磁盘和打印机等硬件设备的核心程序。
它从用户那儿同意命令并把命令送给内核去执行。
〔2〕LinuxShell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令说明器,它说明由用户输入的命令同时把它们送到内核。
不仅如此,Shell有自己的编程语言用于对命令的编辑,它承诺用户编写由shell命令组成的程序。
Shell编程语言具有一般编程语言的专门多特点,比如它也有循环结构和分支操纵结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的成效。
〔3〕Linux文件结构
文件结构是文件存放在磁盘等储备设备上的组织方法。
要紧表达在对文件和名目的组织上。
名目提供了治理文件的一个方便而有效的途径。
我们能够从一个名目切换到另一个名目,而且能够设置名目和文件的权限,设置文件的共享程度。
使用Linux,用户能够设置名目和文件的权限,以便承诺或拒绝其他人对其进行访问。
〔4〕Linux有用工具
标准的Linux系统都有一套叫做有用工具的程序,它们是专门的程序,例如编辑器、执行标准的运算操作等。
用户也能够产生自己的工具。
有用工具可分三类:
编辑器:
用于编辑文件。
过滤器:
用于接收数据并过滤数据。
交互程序:
承诺用户发送信息或接收来自其他用户的信息。
1.4串口通信的差不多任务
〔1〕实现数据格式化:
因为来自CPU的是一般的并行数据,因此,接口电路应具有实现不同串行通信方式下的数据格式化的任务。
在异步通信方式下,接口自动生成起止式的帧数据格式。
在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
〔2〕进行串---并转换:
串行传送,数据是一位一位串行传送的,而运算机处理数据是并行数据。
因此当数据由运算机送至数据发送器时,第一把串行数据转换为并行数才能送入运算机处理。
因此串并转换是串接口电路和的重要任务。
〔3〕操纵数据传输速率:
串行通信接口电路应具有对数据传输速率-----波特率进行先择和操纵的能力。
〔4〕进行错误检测:
在发送接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。
在接收时,接口电路检查字符的奇偶校验或其他检验码,确定是否发生传送错误。
〔5〕进行TTL与EIA电平转换:
CPU和终端均采纳TTL电平及正逻辑,它们与EIA采纳的电平及负逻辑不兼容,需在接口电路中进行转换。
2串口通信协议及实现
串行端口的本质功能是作为CPU和串行设备间的编码转换器,一样微机内都配有通信适配器,使运算机能够与其他具有RS-232C串口的运算机或设备进行通信。
本系统要紧目的是实现宿主机与目标机之