资料介绍
6.4.1 串口概述
常见的数据通信的基本方式可分为并行通信与串行通信两种。
n 并行通信是指利用多条数据传输线将一个字数据的各比特位同时传送。它的特点是传输速度快,适用于传输距离短且传输速度较高的通信。
n 串行通信是指利用一条传输线将数据以比特位为单位顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于传输距离长且传输速度较慢的通信。
串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,它的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个DB25芯引脚的连接器或9芯引脚的连接器,其中25芯引脚的连接器如图6.3所示。
图6.3 25引脚串行接口图
S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或者DMA(直接存储访问)模式。同时,每个UART均具有16字节的FIFO(先入先出寄存器),支持的最高波特率可达到230.4Kbps。UART的操作主要可分为以下几个部分:数据发送、数据接收、产生中断、设置波特率、Loopback模式、红外模式以及硬软流控模式。
串口参数的配置读者在配置超级终端和minicom时也已经接触过,一般包括波特率、起始位比特数、数据位比特数、停止位比特数和流控模式。在此,可以将其配置为波特率115200、起始位1b、数据位8b、停止位1b和无流控模式。
在Linux中,所有的设备文件一般都位于“/dev”下,其中串口1和串口2对应的设备名依次为“/dev/ttyS0”和“/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”和“/dev/ttyUSB1”(因版本不同该设备名会有所不同),可以查看在“/dev”下的文件以确认。在本章中已经提到过,在Linux下对设备的操作方法与对文件的操作方法是一样的,因此,对串口的读写就可以使用简单的read()、write()函数来完成,所不同的只是需要对串口的其他参数另做配置,下面就来详细讲解串口应用开发的步骤。
6.4.2 串口设置详解
串口的设置主要是设置struct termios结构体的各成员值,如下所示:
#include《termios.h》
struct termios
{
unsigned short c_iflag; /* 输入模式标志 */
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志*/
unsigned short c_lflag; /* 本地模式标志 */
unsigned char c_line; /* 线路规程 */
unsigned char c_cc[NCC]; /* 控制特性 */
speed_t c_ispeed; /* 输入速度 */
speed_t c_ospeed; /* 输出速度 */
};
termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端、串口等)。口是一种终端设备,一般通过终端编程接口对其进行配置和控制。在具体讲解串口相关编程之前,先了解一下终端相关知识。
终端有3种工作模式,分别为规范模式(canonical mode)、非规范模式(non-canonical mode)和原始模式(raw mode)。
通过在termios结构的c_lflag中设置ICANNON标志来定义终端是以规范模式(设置ICANNON标志)还是以非规范模式(清除ICANNON标志)工作,默认情况为规范模式。
在规范模式下,所有的输入是基于行进行处理。在用户输入一个行结束符(回车符、EOF等)之前,系统调用read()函数读不到用户输入的任何字符。除了EOF之外的行结束符(回车符等)与普通字符一样会被read()函数读取到缓冲区之中。在规范模式中,行编辑是可行的,而且一次调用read()函数最多只能读取一行数据。如果在read()函数中被请求读取的数据字节数小于当前行可读取的字节数,则read()函数只会读取被请求的字节数,剩下的字节下次再被读取。
常见的数据通信的基本方式可分为并行通信与串行通信两种。
n 并行通信是指利用多条数据传输线将一个字数据的各比特位同时传送。它的特点是传输速度快,适用于传输距离短且传输速度较高的通信。
n 串行通信是指利用一条传输线将数据以比特位为单位顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于传输距离长且传输速度较慢的通信。
串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,它的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个DB25芯引脚的连接器或9芯引脚的连接器,其中25芯引脚的连接器如图6.3所示。
图6.3 25引脚串行接口图
S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或者DMA(直接存储访问)模式。同时,每个UART均具有16字节的FIFO(先入先出寄存器),支持的最高波特率可达到230.4Kbps。UART的操作主要可分为以下几个部分:数据发送、数据接收、产生中断、设置波特率、Loopback模式、红外模式以及硬软流控模式。
串口参数的配置读者在配置超级终端和minicom时也已经接触过,一般包括波特率、起始位比特数、数据位比特数、停止位比特数和流控模式。在此,可以将其配置为波特率115200、起始位1b、数据位8b、停止位1b和无流控模式。
在Linux中,所有的设备文件一般都位于“/dev”下,其中串口1和串口2对应的设备名依次为“/dev/ttyS0”和“/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”和“/dev/ttyUSB1”(因版本不同该设备名会有所不同),可以查看在“/dev”下的文件以确认。在本章中已经提到过,在Linux下对设备的操作方法与对文件的操作方法是一样的,因此,对串口的读写就可以使用简单的read()、write()函数来完成,所不同的只是需要对串口的其他参数另做配置,下面就来详细讲解串口应用开发的步骤。
6.4.2 串口设置详解
串口的设置主要是设置struct termios结构体的各成员值,如下所示:
#include《termios.h》
struct termios
{
unsigned short c_iflag; /* 输入模式标志 */
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志*/
unsigned short c_lflag; /* 本地模式标志 */
unsigned char c_line; /* 线路规程 */
unsigned char c_cc[NCC]; /* 控制特性 */
speed_t c_ispeed; /* 输入速度 */
speed_t c_ospeed; /* 输出速度 */
};
termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端、串口等)。口是一种终端设备,一般通过终端编程接口对其进行配置和控制。在具体讲解串口相关编程之前,先了解一下终端相关知识。
终端有3种工作模式,分别为规范模式(canonical mode)、非规范模式(non-canonical mode)和原始模式(raw mode)。
通过在termios结构的c_lflag中设置ICANNON标志来定义终端是以规范模式(设置ICANNON标志)还是以非规范模式(清除ICANNON标志)工作,默认情况为规范模式。
在规范模式下,所有的输入是基于行进行处理。在用户输入一个行结束符(回车符、EOF等)之前,系统调用read()函数读不到用户输入的任何字符。除了EOF之外的行结束符(回车符等)与普通字符一样会被read()函数读取到缓冲区之中。在规范模式中,行编辑是可行的,而且一次调用read()函数最多只能读取一行数据。如果在read()函数中被请求读取的数据字节数小于当前行可读取的字节数,则read()函数只会读取被请求的字节数,剩下的字节下次再被读取。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 视频教程-嵌入式Linux文件与串口编程-嵌入式
- 嵌入式linux串口编程
- 嵌入式Linux开发工具——shell编程
- Linux环境编程:从应用到内核 16次下载
- Visual C串口通信技术与编程实践 27次下载
- Linux下C语言编程入门教程详细说明 39次下载
- Linux教程之Linux命令、编程器、Shell编程、实例大全pdf免费下载 20次下载
- LINUX系统教程之如何在Linux系统下进行编程 9次下载
- Linux操作系统实用教程之如何进行Linux系统下的编程管理 5次下载
- Linux操作系统下C语言编程入门.pdf 95次下载
- 最详尽的——解析串口通信数据 2次下载
- 串口编程参考资料 linux环境下的 8次下载
- Linux下串口编程入门 0次下载
- Linux下串口编程下载 108次下载
- 串口通讯编程实践电子书 0次下载
- 嵌入式开发:映射表在串口数据解析中的应用 348次阅读
- C语言映射表在串口数据解析中的应用 383次阅读
- Linux系统编程有哪些优势 1224次阅读
- 英创信息技术嵌入式Linux串口通讯的C++设计概述 2180次阅读
- 51单片机串口通讯编程的方式解析 3269次阅读
- 工业机器人主流离线编程软件解析 3386次阅读
- Apollo与GPS串口通信的数据格式 6313次阅读
- 基于嵌入式linux系统下的串口编程具体设置详解 6843次阅读
- 关于Linux下多线程编程技术学习总结 2135次阅读
- linux串口通信编程 2478次阅读
- java串口通信编程实例 2.4w次阅读
- labview串口数据解析 5.8w次阅读
- python串口编程实例 4.6w次阅读
- Linux下ARM 和单片机的串口通信设计 3431次阅读
- 基于Linux的ARM/单片机串口通信设计 2795次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多