【实验日志】计算机串口使用与测量2

Linux平台串口数据接收

一、实验目的

1、熟练使用Linux下io函数read、write和epoll函数

2、了解Linux设备文件机制

3、熟练使用示波器识读UART波形

二、实验说明

》串口:串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。

UARTUART是一种通用串行数据总线,用于异步通信

波特率:波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。

波特率表示单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,波特率即指一个单位时间内传输符号的个数。

实验使用示波器抓取STC单片计算机板发送的UART信号,分析该信号的波特率,根据识读到的结果编写Linux程序读取UART串口所收到的数据。

左侧箭头:USB连接虚拟机右侧箭头:P1.1UART发送脚

UART串口是通过移位寄存器将所传输的数据按时间顺序进行传输的方式。信号线在没有数据传输时保持高电平。信号以下降沿表示传输开始。传输开始时,UART固定传输一个码片时间的低电平作为起始位,然后开始移位所传输载荷数据的最低比特。

每次传输可以传输7比特、8比特或者9比特数据,可以选择带奇偶校验位,最后再固定传输一个码片宽度的高电平作为停止位。

例如,最主流的UART串口配置是8N1,就是1个起始位、8个数据位,1个停止位,无奇偶校验位。又例如下图所示,就是1个起始位,7个数据位,1个奇偶校验位,1个停止位。

由于UART串口没有时钟信号,所以需要通信双方约定一个码片的时间长度。人们习惯使用波特率来表示每秒钟所能发送的码片数量。码片长度越长,波特率越低;码片长度越短,波特率越高。常用的波特率有1200、1800, 2400, 4800, 9600,19200, 38400, 57600, 115200等。这次实验所用的波特率都是常用波特率。

实验所用STC单片机,下载dut1.hex文件后会主动按照以下格式发送数据。本次实验是要正确获取序列号内容。

 字节1

 字节2

 字节3-字节13(共11字节)

 0xAA

0x55

序列号

三、实验内容

1、按照3.3.1节说明,向STC单片计算机板下载程序

(1)先下载安装USB转串口芯片CH340G的驱动程序

(2)再下载STC-ISP软件,无需安装,打开即可使用

打开STC-ISP软件,检测串口号。若单片机与电脑未连接,串口号不会显示USB-SERAL CH340,若正常连接则显示USB-SERAL CH340和对应串口号;选择单片机型号“IAP15F2K61S2”。

未连接:

已连接:

点击“打开程序文件”,选择打开要下载的“.hex”文件

点击“下载/编程”,然后按下单片机的复位键(下载键),进行程序下载,下载成功显示“操作成功”:

依据已下载的程序的功能,在单片机上进行相关功能的测试的操作,观察现象即可。

2、使用示波器观察STC单片机UART串口输出信号,识别单片机发送数据所使用的波特率。

1/52us*10^6≈19200,得知该单片机所用波特率为19200

3、根据单片机串口波特率,编写C语言程序从虚拟机的串口读取信息。下面是不完整的参考示例,可以根据自己需要进行修改。

将代码按测得的波特率修改为下图所示:

问题:出现/dev/ttyUSB0: Input/output error

解决:虚拟机添加串口:

问题:出现/dev/ttyUSB0: Permission denied

解决:sudo chmod 777 /dev/ttyUSB0

可得序列号为f4 49 02 19 20 1e 17 69 07 15 ed

4、使用如下命令将序列号提交到本次实验服务器,其中112233445566778899AABB请用读取到的序列号代替,iiiiiiiiiii用自己学号代替。请同学们务必正确输入自己的学号。

curl "132.232.98.70:6363/checkBaud?id=iiiiiiiiiiii&v=112233445566778899AABB"

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值