微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于ADS的S3C2410实现嵌入式串口通信

基于ADS的S3C2410实现嵌入式串口通信

时间:09-21 来源:互联网 点击:

的设计来说可能仍然不够。例如,可能是微控制器需要与之通信的外设所用的协议与串口协议稍有不同,也可能是硬件UART所提供的位数、奇偶校验功能或输入和输出缓存无法完全满足应用的要求。这时,通过构建一个软件UART接口,我们在定义UART的功能和串口协议的细节上就更灵活。

第三,一款微控制器的硬件UART也许能够很好地满足应用的需求,但只是数量不够。例如,微控制器包含两个UART,而设计中的应用却需要三个。此时,我们不必仅仅为了增加串口的数量就另外增加一块新的芯片,而只需增加一个与该微控制器上现有的UART具备同样功能和特性的软件UART。

UART软件部分的实现

绝大多数的Linux软件开发都是以native方式进行的,即本机(HOST)开发、调试、本机运行的方式,但是由于在目标机上没有足够的资源来满足嵌入式系统的开发,所以这种方式不适合于嵌入式系统的软件开发。通常嵌入式系统软件开发采用交叉编译调试的方法。交叉编译的主要特征是某机器中执行的程序代码不是由本机编译生成,而是由另外一台机器编译生成。

串口通信的基本任务有:实现数据格式化、进行串/并转换、控制数据传输速率、进行错误检测和进行TTl与EIA电平转换。串口通信分为同步通信和异步通信两种类型,本文将用到异步串行I/0。

由于Linux系统将所有的设备都看成文件,所以访问串口时,认为串口是一个文件,我们可以使用文件系统控制函数实现基本的串口操作,比如open()函数用来打开串口,read()和write()函数用来读写串口,在传输数据完成后可以用close()函数关闭串口。

构造了一个嵌入式版本的Linux文件系统,它使得内核在系统尽量精简的情况下能够运行起来,并满足产品和系统各方面的要求。其中,为文件系统配置用户和属组以达到一定的安全性更是系统的一大特色。另外,在这个嵌入式文件系统中,引入了VFS的支持,虽然牺牲了一些空间,但是大大方便了今后各种物理文件系统的动态加载。Linux的文件系统事实上非常的庞大,构造一个嵌入式的Linux文件系统是一个很复杂的过程

串口的基本设置

串口最基本的设置有波特率设置、检验位和停止位的设置。串口的设置主要是设置struct termios结构体的各成员值:

串口的读写

发送数据

除了上面用read来读取串口的方法外,也可以使用操作文件的函数来实现异步读取,如fcnt1,或者selectt等。

应用程序

ADS开发平台的优点是它已经把串口的相关设置函数都已经包含在相关的头文件中,这样当开发人员想利用串口进行再次研发时就可以直接利用这些函数,或者在原函数上进行修改。本文中要通过S3C2410的串口对WNSC400控制箱进行数据的传输就利用了这些优点,部分程序如下:

结语

在ADS环境下进行的开发减少了直接在Linux系统下进行串口开发所遇到的麻烦,而且由于AARM具有多功能模块扩展功能,可以使多种功能集中起来,为WNSC400控制箱及其电动平移台广泛应用于嵌入式系统中创造了条件。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top