PC机之间串口通信的实现一、实验目的 1.熟悉微机接口实验装置的结构和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.学会串行通信程序的编制方法。 二、实验内容与要求 1.基本要求主机接收开关量输入的数据(二进制或十六进制),从键盘上按“传输”键(可自行定义),就将该数据通过8251A传输出去。终端接收后在显示器上显示数据。具体操作说明如下:(1)出现提示信息“start with R in the board!”,通过调整乒乓开关的状态,设置8位数据;(2)在小键盘上按“R”键,系统将此时乒乓开关的状态读入计算机I中,并显示出来,同时显示经串行通讯后,计算机II接收到的数据;(3)完成后,系统提示“do you want to send another data? Y/N”,根据用户需要,在键盘按下“Y”键,则重复步骤(1),进行另一数据的通讯;在键盘按除“Y”键外的任意键,将退出本程序。2.提高要求 能够进行出错处理,例如采用奇偶校验,出错重传或者采用接收方回传和发送方确认来保证发送和接收正确。 三、设计报告要求 1.设计目的和内容 2.总体设计 3.硬件设计:原理图(接线图)及简要说明 4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法) 四、8251A通用串行输入/输出接口芯片由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。能够完成上述“串←→并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A异步工作方式:如果8251A编程为异步方式,在需要发送字符时,必须首先设置TXEN和CTS#为有效状态,TXEN(Transmitter Enable)是允许发送信号,是命令寄存器中的一位;CTS#(Clear To Send)是由外设发来的对CPU请求发送信号的响应信号。然后就开始发送过程。在发送时,每当CPU送往发送缓冲器一个字符,发送器自动为这个字符加上1个起始位,并且按照编程要求加上奇/偶校验位以及1个、1.5个或者2个停止位。串行数据以起始位开始,接着是最低有效数据位,最高有效位的后面是奇/偶校验位,然后是停止位。按位发送的数据是以发送时钟TXC的下降沿同步的,也就是说这些数据总是在发送时钟TXC的下降沿从8251A发出。数据传输的波特率取决于编程时指定的波特率因子,为发送器时钟频率的1、1/16或1/64。当波特率指定为16时,数据传输的波特率就是发送器时钟频率的1/16。CPU通过数据总线将数据送到8251A的数据输出缓冲寄存器以后,再传输到发送缓冲器,经移位寄存器移位,将并行数据变为串行数据,从TxD端送往外部设备。在8251A接收字符时,命令寄存器的接收允许位RxE(Receiver Enable)必须为1。8251A通过检测RxD引脚上的低电平来准备接收字符,在没有字符传送时RxD端为高电平。8251A不断地检测RxD引脚,从RxD端上检测到低电平以后,便认为是串行数据的起始位,并且启动接收控制电路中的一个计数器来进行计数,计数器的频率等于接收器时钟频率。计数器是作为接收器采样定时,当计数到相当于半个数位的传输时间时再次对RxD端进行采样,如果仍为低电平,则确认该数位是一个有效的起始位。若传输一个字符需要16个时钟,那么就是要在计数8个时钟后采样到低电平。之后,8251A每隔一个数位的传输时间对RxD端采样一次,依次确定串行数据位的值。串行数据位顺序进入接收移位寄存器,通过校验并除去停止位,变成并行数据以后通过内部数据总线送入接收缓冲器,此时发出有效状态的RxRDY信号通知CPU,通知CPU8251A已经收到一个有效的数据。一个字符对应的数据可以是5~8位。如果一个字符对应的数据不到8位,8251A会在移位转换成并行数据的时候,自动把他们的高位补成0。 五、系统总体设计方案根据系统设计的要求,对系统设计的总体方案进行论证分析如下:1.获取8位开关量可使用实验台上的8255A可编程并行接口芯片,因为只要获取8位数据量,只需使用基本输入和8位数据线,所以将8255A工作在方式0,PA0-PA7接实验台上的8位开关量。2.当使用串口进行数据传送时,虽然同步通信速度远远高于异步通信,可达500kbit/s,但由于其需要有一个时钟来实现发送端和接收端之间的同步,硬件电路复杂,通常计算机之间的通信只采用异步通信。3.由于8251A本身没有时钟,需要外部提供,所以本设计中使用实验台上的8253芯片的计数器2来实现。4:显示和键盘输入均使用DOS功能调用来实现。设计思路框图,如下图所示: 六、硬件设计硬件电路主要分为8位开关量数据获取电路,串行通信数据发送电路,串行通信数据接收电路三个部分。1.8位开关量数据获取电路该电路主要是利用8255并行接口读取8位乒乓开关的数据。此次设计在获取8位开关数据量时采用8255令其工作在方式0,A口输入8位数据,CS#接实验台上CS1口,对应端口为280H-283H,PA0-PA7接8个开关。2.串行通信电路串行通信电路本设计中8253主要为8251充当频率发生器,接线如下图所示。
上传时间: 2013-12-19
上传用户:小火车啦啦啦
软件名称:Commix混合串口调试工具软件版本:1.0 软件作者:周陈平作者邮件:ggenien@163.com 软件容量:193KB 软件语言:简体中文授权形式:免费软件应用平台:Win95/98/NT/2000 发布日期:2001年11月06日软件介绍: 很好的串口调试工具,能够混合输入、显示16进制数、10进制数、ASCII字符,能按多种常用方法(如Modbus等)自动加入校验,还可将设定好的参数保存为注册表文件,尤其适合做工业控制方面的通讯调试。使用说明按界面上的“?”就能看到。只有一个执行文件,不用安装。 打开程序后,有16个串口可供选择 Commix 混合输入串口调试工具 Commix设计为串口调试工具,最大特点是:能够混合输入16进制数、10进制数、ASCII字符,这种功能通过转义符“\”实现。 界面说明: 1、 HEX: 输入数据看作16进制字节,不区分大小写 ASCII: 输入数据看作ASCII字符 忽略空格输入: 是否忽略用户输入数据中的空格 自动换行: 是否在接收与发送的数据之间自动换行显示 2、 在HEX和ASCII方式输入时,转义符输入都有效 3、 在ASCII方式,20h到7Eh的字符直接显示,其他字符显示为转义符形式 4、 如果改变显示区的光标位置,新的显示将插入在光标处 5、 用户输入(从串口输出)的数据显示为绿色,从串口输入的数据显示为蓝色,发送到接收之间的间隔时间(毫秒)显示为灰色,用户在显示区输入的字符显示为黑色 6、 程序不检测串口状态,因此也能用于最简单的3线制(第2、3、5针)RS232通讯 7、 串口打开后,修改通讯参数时不必关闭,新参数立即生效 8、 程序结束时,参数自动保存到注册表;点击注册表图标,可将当前设置保存到注册表文件 校验使用: 1、 主界面上,“校验”复选框被选中时,会出现校验设置窗口 2、 选择不同的校验方式,会有不同的选项出现 HEX/ASCII: 选择校验结果的存放方式 3、 如果校验被允许,程序将按“数据 校验 结束符”的顺序发送,结束符的默认格式与主界面上的HEX/ASCII设置相同 转义符使用: 1、 16进制输入: \xhh 2、 10进制输入: \ddd 3、 预定义字符输入: \ccc 或 \cc 或 \\ 4、 显示字符输入: \ra 5、 转义符输入长度必须与上述相符,不区分大小写 转义符使用举例: \x1B 、\027 、\ESC 的值是 1Bh \x0d 、\013 、\cr 的值是 0Dh \rA 、\065 的值是 41h \\ 、\r\ 、\x5C 的值是 字符\ ASCII输入: \stx011234R01\etx57\cr\lf 与HEX输入:02 30 31 31 32 33 34 \rR 30 31 03 \r5 \r7 \cr\lf 是相同的 转义符中的预定义字符: 输入 值 \\ 字符\ \LF 0Ah \CR 0Dh \NUL 0 \SOH 1 \STX 2 \ETX 3 \EOT 4 \ENQ 5 \ACK 6 \NAK 15h \CAN 18h \ESC 27h
上传时间: 2013-11-20
上传用户:dalidala
软件名称:Commix混合串口调试工具软件版本:1.0 软件作者:周陈平作者邮件:ggenien@163.com 软件容量:193KB 软件语言:简体中文授权形式:免费软件应用平台:Win95/98/NT/2000 发布日期:2001年11月06日软件介绍: 很好的串口调试工具,能够混合输入、显示16进制数、10进制数、ASCII字符,能按多种常用方法(如Modbus等)自动加入校验,还可将设定好的参数保存为注册表文件,尤其适合做工业控制方面的通讯调试。使用说明按界面上的“?”就能看到。只有一个执行文件,不用安装。 打开程序后,有16个串口可供选择 Commix 混合输入串口调试工具 Commix设计为串口调试工具,最大特点是:能够混合输入16进制数、10进制数、ASCII字符,这种功能通过转义符“\”实现。 界面说明: 1、 HEX: 输入数据看作16进制字节,不区分大小写 ASCII: 输入数据看作ASCII字符 忽略空格输入: 是否忽略用户输入数据中的空格 自动换行: 是否在接收与发送的数据之间自动换行显示 2、 在HEX和ASCII方式输入时,转义符输入都有效 3、 在ASCII方式,20h到7Eh的字符直接显示,其他字符显示为转义符形式 4、 如果改变显示区的光标位置,新的显示将插入在光标处 5、 用户输入(从串口输出)的数据显示为绿色,从串口输入的数据显示为蓝色,发送到接收之间的间隔时间(毫秒)显示为灰色,用户在显示区输入的字符显示为黑色 6、 程序不检测串口状态,因此也能用于最简单的3线制(第2、3、5针)RS232通讯 7、 串口打开后,修改通讯参数时不必关闭,新参数立即生效 8、 程序结束时,参数自动保存到注册表;点击注册表图标,可将当前设置保存到注册表文件 校验使用: 1、 主界面上,“校验”复选框被选中时,会出现校验设置窗口 2、 选择不同的校验方式,会有不同的选项出现 HEX/ASCII: 选择校验结果的存放方式 3、 如果校验被允许,程序将按“数据 校验 结束符”的顺序发送,结束符的默认格式与主界面上的HEX/ASCII设置相同 转义符使用: 1、 16进制输入: \xhh 2、 10进制输入: \ddd 3、 预定义字符输入: \ccc 或 \cc 或 \\ 4、 显示字符输入: \ra 5、 转义符输入长度必须与上述相符,不区分大小写 转义符使用举例: \x1B 、\027 、\ESC 的值是 1Bh \x0d 、\013 、\cr 的值是 0Dh \rA 、\065 的值是 41h \\ 、\r\ 、\x5C 的值是 字符\ ASCII输入: \stx011234R01\etx57\cr\lf 与HEX输入:02 30 31 31 32 33 34 \rR 30 31 03 \r5 \r7 \cr\lf 是相同的 转义符中的预定义字符: 输入 值 \\ 字符\ \LF 0Ah \CR 0Dh \NUL 0 \SOH 1 \STX 2 \ETX 3 \EOT 4 \ENQ 5 \ACK 6 \NAK 15h \CAN 18h \ESC 27h
上传时间: 2014-01-01
上传用户:2728460838
使用标准控件 Microsoft Communications Contro 进行串口设置,串口读写,读写输入输出缓存。
标签: Communications Microsoft Contro 标准
上传时间: 2013-11-30
上传用户:qq21508895
一个VC++编写的串口通信程序,可以通过串口发送和接收数据,并输出日志,也包含串口通讯中参数的设置
上传时间: 2015-04-06
上传用户:tuilp1a
增加ASCII.C的一个ASCI码(7F),用于虚拟按键用 修改UART串口的命令解析程序,修改RTC的pcf8563中断部分。 精简IIC和smart_timer代码,添加define.h的宏定义。 修改system.c里的消息堆栈的宏定义 增加ii.c函数,支持对eeprom的打包 增加由PLD或者GPIO输出的模拟UART,在6个CLOCK下速度为57.6K 增加消息的优先级功能,消息类型的前4位为消息的优先级,后4位为消息的类型 试用于初学单片机并且想更上一层楼的,或者有些基础,想减少工作量的。
上传时间: 2015-04-10
上传用户:athjac
vb 串口通讯调试方法 现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)
上传时间: 2015-05-05
上传用户:love_stanford
串口通讯,代校验,校验方式为每个数据包通过抑或,在包尾输出校验位
标签: 串口通讯
上传时间: 2014-01-25
上传用户:c12228
dspic6012a 实例 6012mcu的串口接收通信实例,每次计算万波特率后水输出一次报文
上传时间: 2016-01-17
上传用户:wsf950131
超声波模块S51例程, URM37V3.0超声波模块是通过串口通讯的,也可以设置成PWM输出模式及开关量输出模式.
上传时间: 2013-12-16
上传用户:eclipse