Linux操作系统下的串口通信学习笔记

文章作者 100test 发表时间 2007:09:29 13:02:49
来源 100Test.Com百考试题网


  一、什么是串口通信

  串口通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

  二、串口通信的分类

  串口通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。

  2.1同步通信

  同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。如图:

  单同步字符帧结构
   ----- ------ ------- ------ ----- -------- ------- -------
  |同步|数据 |数据 |数据 | ... |数据 |CRC1|CRC2|
  |字符|字符1|字符2|字符3| |字符N| | |
   ----- ------ ------- ------ ----- -------- ------- -------
  双同步字符帧结构
   ----- -------- ------ ------- --- ------- ------- --------
  |同步 |同步 |数据 |数据 | ... |数据 |CRC1|CRC2|
  |字符1|字符2|字符1|字符2| |字符N| | |
   ----- -------- ------ ------- --- ------- ------- --------

  它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

  同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

  2.2异步通信

  异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

  接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。

  在异步通行中有两个比较重要的指标:字符帧格式和波特率。

  (1)字符帧,由起始位、数据位、奇偶校验位和停止位组成。如图:

  无空闲位字符帧
   -- --- --- --- --- -- -- -- -- -- -- -- --- --- --- -- --
  |D7|0/1| 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 0 |D0|D1|
   -- --- --- --- -- -- -- -- -- -- -- -- --- --- --- -- --
  奇偶 停 起 奇偶 停 起
  校验 止 始 校验 止 始
  位 位 位 位
  有空闲位字符帧
   --- --- -- -- -- -- -- -- -- -- --- --- --- --- --- --- --
  | 1 | 0 |D0|D1|D2|D3|D4|D5|D6|D7|0/1| 1 | 1 | 1 | 1 | 0 |D0|
   --- --- -- -- -- -- -- -- -- -- --- --- --- --- --- --- --
  空 起 奇偶 停 空 闲 位 起
  闲 始 校验 止 始
  位 位 位 位



相关文章


一个最简单的Linux2.6内核驱动模块
linux防火墙的启动和关闭
LINUX安装JDK1.6攻略
Linux性能调优的几种方法
Linux操作系统下的串口通信学习笔记
Linux下的硬盘数据恢复与分区表恢复工具
Linux操作系统上安装MYSQL数据库的方法
LinuxShell脚本Ldd命令原理及使用方法
新手学堂:解析Linux文件系统的隐藏权限
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛