串行接口1
- 格式:ppt
- 大小:732.50 KB
- 文档页数:24
课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (13)实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。
具体过程如下:1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。
2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。
3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。
控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。
另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。
2.8251方式指令(端口地址2B9H)3.8251工作指令(端口地址2B9H)4.8251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz波特率=1200波特率因=16计数初值= 1000000/1200*16=527.程序流程框图4.程序代码Fxc.asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz nextmov dl,0ffh ;有键盘输入,读入字符mov ah,06hint 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend startSend .asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址buf3 byte 0mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz next; mov dl,0ffh ;有键盘输入,读入字符;mov ah,06h; int 21hmov dx,28ahin al,dxcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend start步进电机:1.K0=0,逆时针转;K0=1,顺时针转2.K1=0,慢转;K1=1,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jnz kai ;转反转test al,01 ;测试K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,9jnz S1call change9_0S1: inc al ;数据加1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;数据完成加1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复C口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试K2=1?jnz T2call change0_9S2: dec al ;数据减1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转rol al,1 ;数据右移mov buf2,almov dx,288h ;A口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复C口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endpchange9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验需要用到两种芯片8253和8251,两种芯片的作用分别是8253提供串行通讯所需的特定频率的脉冲信号,8251提供输入输出控制,所以在实验的过程中需要熟悉这两种芯片的方式字等使用规范,在仔细阅读了书本以及书本的编程实例后,基本摘掉了程序的设计方法实验过程中,出现了程序编译通过了但是不能运行的情况,后来经过检查发现是程序没有设置好的原因,要设置为编译后运行状态,否知只编译不运行,经过这次实验,知道了8253和8251两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。
串行数据通信的接口标准
串行数据通信的接口标准是用于规范串行数据通信的硬件和软件接口。
这些标准使得不同的设备能够以一致的方式进行数据传输和接收。
常见的串行数据通信接口标准包括RS-232、RS-485、RS-422、RS-423等。
RS-232是一种非常常见的串行通信接口标准,被广泛用于连接计算机和其他设备。
它使用9个引脚,其中包括5个用于数据传输,4个用于控制信号。
RS-232接口可以实现点对点的通信,但传输距离较短,通常在15米以内。
RS-485和RS-422接口标准是RS-232的改进版,它们使用差分信号传输方式,因此具有更远的传输距离和更好的抗干扰能力。
RS-485通常用于多点通信,可以实现多个设备之间的连接。
而RS-422则适用于一对一的通信。
RS-423接口标准与RS-422类似,但使用不同的电平标准。
它也适用于一对一的通信,但具有更高的数据传输速率。
这些串行数据通信接口标准都有各自的特点和适用范围,因此在选择使用哪种接口标准时,需要根据实际需求进行考虑。
COM接口COM接口是指Component Object Mode接口,是微软定义的标准接口。
串口叫做串行接口,现在的PC 机一般有两个串行口COM 1 和COM 2 。
串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。
虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。
通常COM 1 使用的是9 针D 形连接器,也称之为RS-232接口,而COM 2 有的使用的是老式的DB25 针连接器,也称之为RS-422接口,这种接口目前已经很少使用。
一般机箱有两个,新机箱有可能只有一个。
笔记本电脑有可能没有。
有很多工业仪器将它作为标准通信端口。
通信的内容与格式一般附在仪器的用户说明书中。
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。
由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
(1)接口的信号内容实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。
RS-232-C最常用的9条引线的信号内容见附表1所示(2)接口的电气特性在RS-232-C中任何一条信号线的电压均为负逻辑关系。
即:逻辑“1”,-5— -15V;逻辑“0” +5— +15V 。
串行口工作原理
串行口是一种用于数据传输的硬件接口,它可以将数据逐个比特地传输。
串行口工作的基本原理是将需要传输的数据按照一定的规则进行分割,并以连续的比特序列的形式进行传输。
在串行口的工作过程中,数据被分成一个个比特,然后按照事先约定好的规则,依次传输给接收端。
这个规则包括了每个比特的位宽、传输的顺序以及同步的方式等等。
通常情况下,串行口使用的是异步传输方式,也就是说,传输时不需要事先进行时钟同步,而是在数据的起始位置插入起始位和校验位来提供同步信息。
在串行口的数据传输过程中,发送端按照一定的时序将数据比特逐个发送给接收端。
接收端按照相同的时序依次接收每个比特,并通过解码、校验等操作恢复原始数据。
为了保证数据的准确性,通常还会在传输过程中加入差错检测和纠错机制,例如CRC校验等。
串行口的工作原理与并行口不同,串行口通过逐个比特的方式传输数据,相比之下,串行口在传输速率上可能会受到一定的限制。
但是串行口的传输距离相对较长,传输线路简单,而且可以灵活选择传输速率,因此在许多应用场景下得到了广泛的应用。
例如,在计算机、通信设备、工业自动化等领域中,串行口被广泛用于连接外部设备与主机进行数据交互。
串行接口通信测试方法标准串行接口通信测试是确保串行通信设备正常运行的重要步骤。
以下是一些常见的串行接口通信测试方法和标准:1. 物理层测试:•连通性测试:确保所有线缆正确连接,包括传输线、连接器等。
•电气参数测试:测试电压、电流和信号波形是否符合规范,如RS-232、RS-485等标准。
2. 数据链路层测试:•帧同步测试:确保接收端能够正确解析发送端发送的帧。
• CRC校验:测试帧中的CRC校验是否能够检测出错误。
3. 网络层测试:•地址分配测试:对于某些协议,确保设备能够正确地分配和识别地址。
•数据包传输测试:测试设备在网络层是否能够正确地传输数据。
4. 传输层测试:•流量控制测试:确保设备在数据传输时能够正确地进行流量控制。
•错误处理测试:模拟错误情况,测试设备在错误发生时的响应和恢复能力。
5. 应用层测试:•协议一致性测试:确保设备遵循所使用的通信协议的规范。
•功能测试:针对具体应用场景,测试设备是否能够正确地完成预期的功能。
6. 性能测试:•数据传输速率测试:测试设备在不同条件下的数据传输速率。
•延迟测试:测试数据从发送端到接收端的传输延迟。
7. 兼容性测试:•多设备测试:测试设备与其他厂商的设备之间是否能够正常通信。
•协议版本测试:确保设备支持的协议版本与其他设备兼容。
8. 安全性测试:•认证测试:确保只有经过授权的设备能够进行通信。
•加密测试:测试设备是否能够安全地传输数据,防止未经授权的访问。
9. 稳定性测试:•长时间运行测试:在一定时间范围内对设备进行测试,以确保其稳定性和可靠性。
10. 自动化测试:•使用自动化测试工具来执行上述测试,提高测试效率和一致性。
在进行串行接口通信测试时,具体的测试方法和标准会依赖于使用的串行通信协议和设备的规格要求。
确保测试计划覆盖所有关键方面,并记录测试结果以便进行问题追踪和改进。
Serial接口详解Serial接口是一种用于在计算机和其他设备之间传输数据的通信接口,该接口通常被用于串行通信。
本文将详细介绍Serial接口的工作原理和使用方法。
1. 基本概念1.1 串行通信串行通信是一种逐位地传输数据的方式。
与并行通信相比,串行通信只使用一个传输线路来传送数据,这使得串行通信在连接距离较远的设备之间具有更好的灵活性和可扩展性。
1.2 Serial接口Serial接口是一种用于串行通信的硬件和软件接口。
它将计算机或控制器与设备之间的数据传输进行协调和管理。
2. 工作原理2.1 传输方式Serial接口通过逐位地传输数据来进行通信。
数据以比特(bit)的形式通过传输线路传输。
串行通信是一个双向的过程,即数据可以在两个方向上进行传输。
2.2 传输速率Serial接口的传输速率以波特率(baud rate)来度量。
波特率表示每秒钟传输的比特数。
波特率越高,数据传输速度越快。
2.3 数据帧数据帧是Serial接口传输的数据单元。
它包含了数据位、起始位、停止位和可能的校验位。
起始位和停止位用于标识数据的起始和结束,而校验位用于验证数据的完整性。
3. 使用方法3.1 连接设备使用Serial接口进行通信时,首先需要将计算机或控制器与目标设备进行连接。
这通常涉及使用串行线缆将两个设备的串行端口相连。
3.2 配置通信参数在进行Serial通信之前,需要配置一些通信参数,如波特率、数据位、停止位和校验位等。
这些参数需要与目标设备的配置相匹配,才能实现有效的通信。
3.3 通信协议使用Serial接口进行通信时,需要定义一套通信协议。
通信协议包括发送和接收数据的格式、数据帧的结构以及错误处理等内容。
4. 总结通过本文,我们详细了解了Serial接口的工作原理和使用方法。
Serial接口是一种常用的通信接口,它通过串行通信的方式实现数据传输。
熟悉Serial接口的原理和使用方法,有助于我们在实际应用中正确地配置和操作Serial接口,实现可靠的数据传输。
串行接口是一种数字接口,用于在计算机系统中传输数字信号或者数据。
串行接口通过一根线依次传输每个位的数据,相比并行接口,串行接口只需要一根线就可以进行数据传输,因此在一些场景中可以节省成本和空间。
本文将首先简述串行接口的工作原理,然后分别对串行接口的优点和缺点进行详细介绍。
一、串行接口的工作原理1. 数据传输串行接口通过一个个数据位的顺序传送数据,每个数据位通过一根线进行传输。
在传输时,数据被分割成一个个数据包,每个数据包由起始位、数据位、校验位和停止位组成。
这些数据包按照一定的规则经过线路传输,接收端再将这些数据包组装还原成原始数据。
而整个过程中,数据包的传输是依赖于时钟脉冲信号的。
2. 时钟信号为了确保接收端能够正确地接收和理解发送端的数据,串行接口需要一个时钟信号来进行数据的同步。
时钟信号在数据传输的过程中充当了一个重要的角色,确保发送端的数据能够被准确地读取和复原。
3. 带宽利用串行接口能够更好地利用带宽,因为它只需要一根线来进行数据传输。
在一些对带宽有限制的环境下,串行接口可以更好地满足需求。
二、串行接口的优缺点串行接口作为一种常见的数字接口,在许多设备中被广泛使用。
其优缺点如下:优点:1. 使用简单串行接口只需要一根线进行数据传输,在设计和使用上相对简单。
这对于一些资源有限的情况下尤为重要,比如在一些嵌入式系统中,串行接口能够更好地满足需要。
2. 抗干扰能力强因为串行接口只需要一根线进行数据传输,相比并行接口,串行接口在传输过程中对于干扰的抵抗能力更强。
这使得串行接口能够更好地适用于电磁干扰严重的环境。
3. 长距离传输串行接口可以支持较长的传输距离,这对于一些需要进行长距离数据传输的场景非常重要。
缺点:1. 传输速率低由于串行接口是逐位传输数据的,因此在相同条件下,它的传输速率往往比并行接口要低。
这意味着在需要进行高速数据传输的场景下,串行接口可能无法满足需求。
2. 数据传输效率低串行接口在数据传输的过程中需要进行数据包的分割和再组装,这会导致数据传输的效率较低,尤其在大批量数据传输的情形下。