嵌入式系统设计实验二 串行端口程序设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 编译应用程序 • 下载、调试、运行
注意事项
• 在启动实验平台设置ip后,可以使用telnet登录实 验平台
• 在实验平台上建立相应的串口设备
– ln –sf /dev/tts/0 /dev/ttyS0
or:
– ln –sf /dev/tts/1 /dev/ttyS0
• 使用Minicom登录过的串口(串口1)来进行实验可 能会出一些问题,建议使用另一个串口(串口2)来 进行串口通信的实验
串口通信的流程
START 打开串口1 保存COM1属性 设置COM1属性 串口通信及其他 保存COM1属性 关闭CБайду номын сангаасM1
open(“/dev/ttyS0”,O_RDWR); tcgetattr(fd, &oldterm); tcsetattr(fd, &newterm); Program functions tcsetattr(fd, &oldterm); close(fd);
串口通信编程指南
• 所需头文件
– #include <termios.h> /*POSIX终端控制定义*/
• 打开串口
– Linux下一般为/dev/ttyS0(串口1),/dev/ttyS1(串口2) – 在开发板上,串口设备位于/dev/tts/下,开发板上面没
有ttyS0这个设备,需要我们手动建立
符的二进制编码数据,每个字符的数据位长度可以为5、6、7位或8位,一 般采用ASCII编码。后面是奇偶校验位。最后是表示停止位的“1”信号,这 个停止位可持续1、1.5、2位的时间宽度。传送结束。 • 每个数据位的宽度等于波特率的倒数。 • 微机异步串行通信中,常用的波特率为50,95,110,150,300,600, 1200,2400,4800,9600等。
– 8位数据 无校验 – 7位数据 奇校验 – 7位数据 偶校验 – 7位数据 space校验
串口通信编程指南-校验位和停止位的设置
• 设置停止位
– 1位、2位 – raw模式(仅使用串口
传输数据)
串口通信编程指南-读写串口 • 发送数据
• 读取串口数据
多线程的程序设计-多线程API • pthread_create-线程创建函数
• [/dev] ln –sf /dev/tts/0 ttyS0
串口通信编程指南-串口设置
• 最基本的设置包括波特率、校验位和停止位设置 • 设置struct termios结构体的各个成员值
串口通信编程指南-波特率设置 设置波特率为19200Bps
串口通信编程指南-校验位和停止位的设置
• 校验位的设置
实验二 串行端口程序设计
• 实验目的 • 实验内容 • 实验设备及工具 • 预备知识
实验目的
• 了解Linux环境下串口通信程序设计的基本方法 • 掌握终端的主要属性和设置方法 • 熟悉终端I/O函数的使用 • 学习使用多线程来完成串口的收发处理
实验内容
• 学习终端I/O函数的使用方法 • 学习多线程的编程应用 • 学习将多线程编程应用到串口的接收和发送程序
• pthread_join - 等待一个线程的结束
多线程的程序设计-多线程API • pthread_exit - 显式结束一个线程
• pthread_cond_init - 初始化一个条件变量
多线程的程序设计-多线程API • pthread_cond_wait - 使线程阻塞在条件变量上
• pthread_cond_timewait - 在__abstime时间内线程 阻塞在条件变量上,到时间阻塞解除
设计中,编写通过串口实现简单的聊天功能
预备知识
• 有C语言基础 • 掌握Linux下常用编辑器的使用 • 掌握Makefile的编写和使用 • 掌握Linux下的程序编译与交叉编译过程 • 掌握多线程的程序设计方法
实验设备及工具
• 硬件
– UP-NetARM2410-S实验平台 – PC机一台 – 串口线一条 – 网线一条
多线程的程序设计
• 多线程应用的实例很多,可以参考 《实验指导书》 中的“2.2 多线程应用程序设计”的“生产者与消 费者”问题
实验步骤
• 阅读理解参考程序的源码
– $HOME/exp/basic/03_tty/term.c
• 在参考程序的基础上实现如下功能
– 能够通过串口实现PC机和实验平台之间的简单聊天功 能:运行所编写的程序后,在宿主机和目标机上的终 端窗口(可以telnet到目标机上)上输入若干个单词, 回车后能够在对方的终端窗口上显示出来
• 软件
– 操作系统: Redhat Linux 9或更高版本 – minicom – arm linux开发环境
串行端口通信-实验原理
• 采用异步串行I/O方式 • 将传输数据的每一个字符一位接一位地传送。 • 各个不同位分时地使用同一传输通道
串行端口通信-实验原理
• 开始时,线路处于空闲状态,送出连续“1” • 传送开始时,首先发送一个“0”作为起始位,然后出现在通信线上的是字
现在开始试验
相关文档
最新文档