文档库 最新最全的文档下载
当前位置:文档库 › PB-串行接口

PB-串行接口

PB-串行接口
PB-串行接口

PB是一个非常好的数据库管理系统的开发工具。它能够处理纷繁复杂的数据、提供优异的报表集成方式,并且具有灵活、友好、方便和快捷等特点,非常适用于不同的数据库管理系统。但是,许多应用程序既包含了复杂的数据处理,又需要进行计算机通信的控制,如门禁系统、点名系统以及接见系统等。这些应用程序中必须使用计算机的串口进行通信,而PB没有直接控制计算机串口的控件; 而VB中虽然带有串口控件,但是对于习惯使用PB的程序员来说,使用VB来处理大量复杂数据有时会感到不便。笔者在实际工作中利用OLE调用Mscomm.ocx控件,方便地解决了PB中的通信控制问题。

一、解决方法

1.在窗体中新建一OLE控件,在出现的“Insert Object属性”窗口中选择“Insert Control Tab”选项卡,在“Control Type”选项中选择“Microsoft Communications Control”选项(如果没有,说明此机器未注册安装此控件,安装注册的具体方法我们将在下面做详细的介绍),点击“OK”按钮后将控件放在窗体中任一位置(因为控件在实际运行时是不可见的,可以任意放置),系统中出现“Mscomm”控件图标,给此控件命名为“OLE_comm”。

图1 “OLE Custom Control”对话框

图2 “Control Properties属性”对话框

2.控件的属性设置可以在“OLE Custom Control”对话框中的“OLE Control Properties”按钮中进行设置(如图1所示),您也可以鼠标右击控件菜单的“OCX Properties”选项,进入“Control Properties属性”对话框(如图2所示)。笔者推荐您最好在程序中使用编码设置,这样更加便于控制。

例如,在窗口OPEN事件中编程。

ole_comm.object._CommPort = 1

ole_comm.object.Settings = "57600,n,8,1"

ole_comm.object.InputLen = 0

ole_comm.object.InBufferSize = 90

ole_comm.object.OutBufferSize = 60

ole_comm.object.SThreshold = 0

ole_comm.object.RThreshold = 9

ole_comm.object.Handshaking = 0

ole_comm.object.PortOpen = True

ole_comm.object.InBufferCount = 0

ole_comm.object.DTREnable = true

其中:

CommPort 设置并返回通信端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位以及停止位。

InputLen 从接收缓冲区中读取的字符数。设置InputLen值为“0”时,使用“Input”将使“MSComm”控件读取接收缓冲区中全部的内容。

InBufferSize 设置并返回接收缓冲区的字节数。

OutBufferSize 以字节的形式设置并返回传输缓冲区的大小。

Handshaking 设置并返回硬件握手协议。

PortOpen 设置并返回通讯端口的状态,也可以打开和关闭端口。

以上程序中设置的值均为本人在实际应用中所使用的值,其中的具体数值应根据您的实际应用情况进行设置。属性设置在PB的编程中需要在控件名称后加“.object”,这与VB等编程工具中稍有区别。

3.对控件的oncomm事件编程(以case 2为例)。

choose Case ole_https://www.wendangku.net/doc/96192221.html,mEvent

case 2 //ComEvReceive2 收到Rthreshold个字符。该事件将持续产生,直到使用“Input”属性从接收缓冲区中删除数据。

//主要控制处理程序在此事件中由串口自动触发,避免占用系统资源。

//输入接收到数据后所要做的处理。

string ls_input,ls_output

ls_input = ole_comm.Object.Input //取数据。

wf_oncomm(ls_input)//处理

//ls_output赋值

ole_comm.Object.output(ls_output)

End choose

注意: 在PB编程中“case”后面只能使用数值,不能用字符串(在VB中可以使用),具体数值的含义可以在MSDN中查找。

4.根据实际工作中的经验,为了避免信号干扰等原因造成通信错误,程序在开始使用串口或者出现错误时要有对串口进行复位操作,复位编程如下。

ole_comm.object.dtrenable=false//关闭串口。

//延时,可通过Win32的Sleep函数实现。

首先声明Function Long Sleep(Long ms) Library 'kernel32'

Sleep(1000)//延时1秒。

//简单一点的可以使用一空的for循环语句达到目的。

for i=1 to 1000

next

ole_comm.object.input //清空缓冲区。

ole_comm.object.dtrenable=true//打开串口。

5.如何注册“Mscomm”控件。

可以单独制做一个注册程序,并打包到您的应用程序中。如果需要安装的目标计算机已经有“Mscomm”控件,则不需要进行任何工作。如果没有“Mscomm”控件,则需要运行这个注册程序。程序编码如下。

RegistrySet("HKEY_CLASSES_ROOT \Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905","", RegString!, "kjljvjjjo quqmjjjvpqqkqmqyky poqjquoun") run("regsvr32 mscomm32.ocx") messagebox('提示','请重新启动计算机')

这只是简单的编码,并且mscomm32.ocx文件在当前运行目录,注册成功即出现系统消息。为了使界面更友好,您可以做一步修饰,例如“run("regsvr32/s mscomm32.ocx")”,这样就可以使屏幕上不出现系统消息了。

您还可以利用API函数,通过“ExitWindowsEx”函数可以实现重新启动Windows系统,具体步骤如下。

1.首先进行声明。

Function Long ExitWindowsEx(Long uflag,Long nouse) Library 'user32.dll'

2.在messagebox中增加一用户选择,如果用户现在立即重新启动,即调用函数ExitWindowsEx (2,0)。

3.在注册时可以获取当前目录或者Windows系统目录来注册控件,通过“GetCurrentDirectory”函数即可获取当前目录,该函数声明如下。

Function Ulong GetCurrentDirectoryA(Ulong buflen, ref String dir) Library 'kernel32.d ll'

编码为:

String ls_currentdir

Ls_currentdir=Space(256) //置空变量。

GetCurrentDirectoryA(256, ls_currentdir)

4.通过“GetWindowsDirectory”和“GetSystemDirectory”这2个函数,获取Windows及系统目录,声明如下。

Function Uint GetWindowsDirectoryA(ref String dir,Uint buflen) Library 'kernel32.dll' Function Uint GetSystemDirectoryA(ref String dir,Uint buflen) Library 'kernel32.dll'

另外,该程序根据需要还可以进行优化,在此不再详述。上述程序在Windows 98+Power Builder

6.5系统中测试通过。

二、小结

利用上述方法,我们既可以在PB中实现计算机的串口通信,又保持了PB的强大的数据处理功能,使您能随心所欲地使用PB编制计算机控制程序。

-------------------------

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.MSComm控件两种处理通讯的方式

MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

1.1 事件驱动方式

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。

1.2 查询方式

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

2.MSComm 控件的常用属性

MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

CommPort 设置并返回通讯端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。

Input 从接收缓冲区返回和删除字符。

Output 向传输缓冲区写一个字符串。

下面分别描述:

CommPort属性设置并返回通讯端口号。

语法https://www.wendangku.net/doc/96192221.html,mPort[value ] (value 一整型值,说明端口号。)

说明在设计时,value 可以设置成从 1 到16 的任何数(缺省值为1)。但是如果用PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误68(设备无效)。

注意:必须在打开端口之前设置CommPort 属性。

RThreshold 属性:在MSComm 控件设置CommEvent 属性为comEvReceive 并产生OnComm 之前,设置并返回的要接收的字符数。

语法object.Rthreshold [ = value ](value 整型表达式,说明在产生OnComm 事件之前要接收的字符数。)

说明当接收字符后,若Rthreshold 属性设置为0(缺省值)则不产生OnComm 事件。例如,设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件。

CTSHolding 属性:确定是否可通过查询Clear To Send (CTS) 线的状态发送数据。Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。该属性在设计时无效,在运行时为只读。

语法:object.CTSHolding(Boolean)

Mscomm 控件的CTSHolding 属性设置值:

True Clear To Send 线为高电平。

False Clear To Send 线为低电平。

说明:如果Clear To Send 线为低电平(CTSHolding = False) 并且超时时,MSComm 控件设置CommEvent 属性为comEventCTSTO (Clear To Send Timeout) 并产生OnComm 事件。

Clear To Send 线用于RTS/CTS (Request To Send/Clear To Send) 硬件握手。如果需要确定Clear To Send 线的状态,CTSHolding 属性给出一种手工查询的方法。

详细信息有关握手协议,请参阅Handshaking 属性。

SThreshold 属性:MSComm 控件设置CommEvent 属性为comEvSend 并产生OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。

语法object.SThreshold [ = value ]

value 整形表达式,代表在OnComm 事件产生之前在传输缓冲区中的最小字符数。

说明:若设置Sthreshold 属性为0(缺省值),数据传输事件不会产生OnComm 事件。若设置Sthreshold 属性为1,当传输缓冲区完全空时,MSComm 控件产生OnComm 事件。如果在传输缓冲区中的字符数小于value,CommEvent 属性设置为comEvSend,并产生OnComm 事件。comEvSend 事件仅当字符数与Sthreshold 交叉时被激活一次。例如,如果Sthreshold 等于5,仅当在输出队列中字符数从 5 降到 4 时,comEvSend 才发生。如果在输出队列中从没有比Sthreshold 多的字符,comEvSend 事件将绝不会发生。

Handshake 常数

常数值描述

comNone 0 无握手。

comXonXoff 1 XOn/Xoff 握手。

comRTS 2 Request-to-send/clear-to-send 握手。

comRTSXOnXOff 3 Request-to-send 和clear-to-send 握手皆可。

OnComm 常数

常数值描述

comEvSend 1 发送事件。

comEvReceive 2 接收事件。

comEvCTS 3 clear-to-send 线变化。

comEvDSR 4 data-set ready 线变化。

comEvCD 5 carrier detect 线变化。

comEvRing 6 振铃检测。

comEvEOF 7 文件结束。

Error 常数

常数值描述

comEventBreak 1001 接收到中断信号

comEventCTSTO 1002 Clear-to-send 超时

comEventDSRTO 1003 Data-set ready 超时

comEventFrame 1004 帧错误

comEventOverrun 1006 端口超速

comEventCDTO 1007 Carrier detect 超时

comEventRxOver 1008 接收缓冲区溢出

comEventRxParity 1009 Parity 错误

comEventTxFull 1010 传输缓冲区满

comEventDCB 1011 检索端口设备控制块(DCB) 时的意外错误

InputMode 常数

常数值描述

comInputModeText 0 (缺省)通过Input 属性以文本方式取回数据。

comInputModeBinary 1 通过Input 属性以二进制方式检取回数据。

CDHolding 属性:通过查询Carrier Detect (CD) 线的状态确定当前是否有传输。Carrier Detect 是从调制解调器发送到相联计算机的一个信号,指示调制解调器正在联机。该属性在设计时无效,在运行时为只读。

语法object.CDHolding

设置值:CDHolding 属性的设置值为:

设置描述

True Carrier Detect 线为高电平

False Carrier Detect 线为低电平

说明:注意当Carrier Detect 线为高电平(CDHolding = True) 且超时时,MSComm 控件设置CommEvent 属性为comEventCDTO(Carrier Detect 超时错误),并产生OnComm 事件。

注意在主机应用程序中捕获一个丢失的传输是特别重要的,例如一个公告板,因为呼叫者可以随时挂起(放弃传输)。

Carrier Detect 也被称为Receive Line Signal Detect (RLSD)。

数据类型Boolean

DSRHolding 属性:确定Data Set Ready (DSR) 线的状态。Data Set Ready 信号由调制解调器发送到相连计算机,指示作好操作准备。该属性在设计时无效,在运行时为只读。

语法:object.DSRHolding

object 所在处表示对象表达式,其值是“应用于”列表中的对象。

DSRHolding 属性返回以下值:

值描述

True Data Set Ready 线高

False Data Set Ready 线低

说明:当Data Set Ready 线为高电平(DSRHolding = True) 且超时时,MSComm 控件设置CommEvent 属性为comEventDSRTO(数据准备超时)并产生OnComm 事件。

当为Data Terminal Equipment (DTE) 机器写Data Set Ready/Data Terminal Ready 握手例程时该属性是十分有用的。

数据类型:Boolean

Settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。

语法: object.Settings[ = value]

说明:当端口打开时,如果value 非法,则MSComm 控件产生错误380(非法属性值)。

Value 由四个设置值组成,有如下的格式:

"BBBB,P,D,S"

BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:

"9600,N,8,1"

InputLen 属性:设置并返回Input 属性从接收缓冲区读取的字符数。

语法object.InputLen [ = value]

InputLen 属性语法包括下列部分:

value 整型表达式,说明Input 属性从接收缓冲区中读取的字符数。

说明:InputLen 属性的缺省值是0。设置InputLen 为0 时,使用Input 将使MSComm 控件读取接收缓冲区中全部的内容。

=---------------------------------------

若接收缓冲区中InputLen 字符无效,Input 属性返回一个零长度字符串("")。在使用Input 前,用户可以选择检查InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长数据的机器读取数据时非常有用。

EOFEnable 属性:确定在输入过程中MSComm 控件是否寻找文件结尾(EOF) 字符。如果找到EOF 字符,将停止输入并激活OnComm 事件,此时CommEvent 属性设置为comEvEOF,

语法:object.EOFEnable [ = value ]

EOFEnable 属性语法包括下列部分:

value 布尔表达式,确定当找到EOF 字符时,OnComm 事件是否被激活,如“设置值”中所描述。

value 的设置值:

True 当EOF 字符找到时OnComm 事件被激活。

False (缺省)当EOF 字符找到时OnComm 事件不被激活。

说明:当EOFEnable 属性设置为False,OnComm 控件将不在输入流中寻找EOF 字符。

错误消息(MS Comm 控件)

下表列出MSComm 控件可以捕获的错误:

值描述

380 无效属性值comInvalidPropertyValue

383 属性为只读comSetNotSupported

394 属性为只读comGetNotSupported

8000 端口打开时操作不合法comPortOpen

8001 超时值必须大于0

8002 无效端口号comPortInvalid

8003 属性只在运行时有效

8004 属性在运行时为只读

8005 端口已经打开comPortAlreadyOpen

8006 设备标识符无效或不支持该标识符

8007 不支持设备的波特率

8008 指定的字节大小无效

8009 缺省参数错误

8010 硬件不可用(被其它设备锁定)

8011 函数不能分配队列

8012 设备没有打开comNoOpen

8013 设备已经打开

8014 不能使用comm 通知

8015 不能设置comm 状态comSetCommStateFailed

8016 不能设置comm 事件屏蔽

8018 仅当端口打开时操作才有效comPortNotOpen

8019 设备忙

8020 读comm 设备错误comReadError

8021 为该端口检索设备控制块时的内部错误comDCBError

串行口通信实验 单片机实验报告

实验六串行口通信实验 一、实验内容 实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。 二、实验目的 掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。 三、实验原理 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于- 0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。 为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。 单片机串行接口有两个控制寄存器:SCON和PCON。串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。由软件置位串行控制寄存器(SCON)的REN位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。 单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。如果用户要进行串行通信,可以调用WINDOWS的API 应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。 四、实验电路 [参考学习板说明书P27]

串行接口简介

串行接口简介 串行接口(Serial port)简称串口,是计算机在与外围设备或者其他计算机连接进行数据传送时的一种常用接口方式。 串口通信的特点在于数据和控制信息室一位接一位地传送出去的,若出错则重新发送该位数据,由于每次只发送一位数据,其传输速度较慢,但因为干扰少,所以更适用于长距离传送。 串口已成为大多数计算机的标准配置之一,在许多普通计算机的接口中都能找到。用户只需增加一根连接线即可进行串口通信,不需要增添其他额外设备,所以在工业控制盒通信中得到了广泛的应用,但是一个串口只能与一个设备进行连接和通信,对于某些应用需求这是一个限制。 协议: 串口有多种通信标准和接口形式,如RS-232、RS-422、RS485等,各种形式接口的管脚数量和定义也不尽相同。其中最常用的修订版本是RS-232C。RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。RS-232C是一个已制定很久的标准(RS表示推荐标准;232表示标识符;C表示修改次数),它描述了计算机及相关设备间较低速率的串行数据通信的物理接口及协议。 硬件: EIA RS-232C标准串口常用于连接计算机、打印机和调制解调器等设备。在许多PC机的主板接口上都能找到他们的身影,这是一种D形接口,分别为25针和9针两种形式,如下图所示。 9针串口的9条连接线中包括2条数据线(TD和RD)、5条握手线(RTS、CTS、DSR、CD)、1条信号地线(SG)和1条振铃指示线(RI),这些引线足以包含大多数RS-232接口中使用的核心引线。25针串口是标准的RS-232接口,其引线除了包括RS-232的核心引线集外,还可覆盖标准中规定的所有信号。

串行接口应用

Overview The MCS?-51 family contains a flexible set of microcontrollers. These 8-bit embedded controllers have different features such as on-chip program memory, data RAM and some even have integrated A/D converters. One feature that all of the microcontrollers in the MCS?-51 family have in common is an integrated UART (Universal Asynchronous Receiver Transmitter). This guide has been designed so that any programmer with basic microcontroller experience can learn how to use the general features of the on-chip UART in a MCS?-51 microcontroller. This document has been created and designed in response to repeated inquires on the usage of the serial port. Working examples have been included and explained to ease the learning process. The serial port can operate in 4 modes: Mode 0: TXD outputs the shift clock. In this mode, 8 bits are transmitted and received by the same pin, RXD. The data is transmitted starting with the least significant bit first, and ending with the most significant bit. The baud rate is fixed at 1/12 the oscillator frequency. Mode 1: Serial data enters through the RXD pin and exits through the TXD pin. In this mode, a start bit of logic level 0 is transmitted then 8 bits are transmitted with the least significant bits first up to the most significant bit; following the most significant bit is the stop bit which is a logic 1. When receiving data in this mode, the stop bit is placed into RB8 in the SFR (Special Function Register) SCON. The baud rate is variable and is controlled by either timer 1 or timer 2 reload values. Mode 2: Serial data enters through the RXD pin and exits through the TXD pin. In this mode, a total of 11 bits are transmitted or received starting with a start bit of logic level 0, 8 bits of data with the least significant bit first, a user programmable ninth data bit, and a stop bit of logic level 1. The ninth data bit is the value of the TB8 bit inside the SCON register. This programmable bit is often used for parity information. The baud rate is programmable to either 1/32 or 1/64 of the oscillator frequency. Mode 3: Mode three is identical to mode 2 except that the baud rate is variable and is controlled by either timer 1 or timer 2 reload values. For more detailed information on each serial port mode, refer to the "Hardware Description of the 8051, 8052, and 80c51." in the 1993 Embedded Microcontrollers and Processors (270645).

北理工微机原理实验三 使用8251A的串行接口应用实验

本科实验报告 实验名称:实验三使用8251A的串行接口应用实验 课程名称:计算机原理与应用实验实验时间: 任课教师:实验地点: 实验教师: 实验类型:□原理验证■综合设计□自主创新 学生姓名: 学号/班级:组号:学院:同组搭档:专业:成绩:

1. 实验目的 1) 掌握串行通信原理及半双工和全双工的编程方法; 2) 掌握用8251A接口芯片实现微机间的同步和异步通信; 3) 掌握8251A芯片与微机的接口技术和编程方法。 2. 实验原理和内容 8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。 1) 8251A内部结构 8251A通过引脚D0~D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。读写控制逻辑用来接收CPU的控制信号、控制数据传送方向。CPU对8251A的读写操作控制表如表3-4所示。 表3-4 CPU对8251A的读写操作控制表 2) 8251A的方式控制字和命令控制字 方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如图3-10所示。 命令控制字使8251A处于规定的状态以准备收发数据,格式如图3-11所示。 方式控制字和命令控制字无独立的端口地址,8251A 根据写入的次序来区分。 CPU对8251A初始化时先写方式控制字,后写命令控制字。

3) 状态寄存器 8251状态寄存器用于寄存8251A的状态信息,供CPU查询,定义如图3-12所示。TXRDY位:当数据缓冲器空时置位,而TXRDY引脚只有当条件( 数据缓冲器空?/CTS?TXE)成立时才置位。 溢出错误:CPU没读走前一个字符,下一个字符又接收到,称为溢出错误。

串行接口实验报告

课程实验报告实验名称:串行接口 专业班级: 学号: 姓名: 同组人员: 指导教师: 报告日期:

实验二 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=52

RS232接口是标准串行接口

RS232接口是标准串行接口,其通讯距离小于15 m,传输速率小于20 kb/s。RS232标准是按负逻辑定义的,他的“1”电平在-5~-15 V之间,“0”电平在+5~+15 V之间。虽然RS232应用很广,但由于数据传输速率慢,通讯距离短,特别是在100 m以上的远程通讯中难以让人满意,因此通常采用RS422,RS449,RS423及RS485等接口标准来实现远程通讯。RS485標準的通信最長距離是1200米(4000英呎),或是最多並聯32個通信單元, RS-232、RS-422与RS-485标准及应用 一、RS-232、RS-422与RS-485的由来 RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制 订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品 之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232 通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s, 传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接 收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标 准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向 通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保 护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是 以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或 协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建 立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的 RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公 开的,而ProLINK则是基于Profile上的。 二、RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低 速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯 图1 收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2 脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间 摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无 数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为 2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱 动器负载为3~7kù。所以RS-232适合本地设备之间的通信。其有关电气参数参见表1。 规定RS232 RS422 R485 工作方式单端差分差分 节点数1收、1发1发10收1发32收 最大传输电缆长度50英尺400英尺400英尺 最大传输速率20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压+/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 负载+/-5V~+/-15V +/-2.0V +/-1.5V 表1

MCS-51单片机串行接口

第七章MCS-51单片机串行接口 第一节串行通信的基本概念 (一)学习要求 1.掌握串行通信的基本概念。 2. 掌握异步通信和同步通信的区别。 (二)内容提要 一:基本概念及分类 串行通信是将数据的各位一位一位地依次传送。适合于计算机之间、计算机与外部设备之间的远距离通信。 串行通信从传输方式分为: 单工方式、半双工方式、全双工方式。 从接收方式来说,串行通信有两种方式: 异步通信方式、同步通信方式。 二:串行口的功能 MCS-51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。 串行口有4种工作方式,见表7-1。方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口的功能。该方式又称为移位寄存器方式。方式1、方式2、方式3都是异步通信方式。方式1是8位异步通信接口。一帧信息由10位组成,其格式见图7-2a。方式1用于双机串行通信。方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7-2b。方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。 表7-1 (三)习题与思考题 1、什么是并行通信?什么是串行通信?各有何优缺点? 答:并行通信指数据的各位同时传输的通信方式,串行通信是指各位数据逐位顺序传输的通信方式。 2、什么是异步通信?什么是同步通信?各有何优缺点? 3、什么是波特率?某异步串行通信接口每分钟传送1800个字符,每个字符由11位组成,请计算出传送波特率。 第二节MCS-51串行接口的组成 (一)学习要求

实验五:串行接口输入输出实验

实验五串行接口输入/输出实验 一、实验目的 1、学习TEC-XP+教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口芯片的设置和使用方法。 二、实验说明 1、TEC-XP+教学计算机的I/O结构 TEC-XP+教学计算机配置有COM1和COM2两个串行接口,其中COM1是TEC-XP+默认的标准接口,与PC终端相连接,监控程序负责对COM1进行初始化和使用管理。COM2预留给用户扩展使用,监控程序不能识别COM2,也不对COM2进行任何操作,用户需要对COM2进行初始化和使用管理。COM1和COM2均由可编程串行通信接口芯片intel8251芯片构成。 2、Intel8251的组成及控制和使用方法 可编程串行通信接口芯片Intel8251支持同步和异步两种通信方式。在异步方式下,波特率为0~19.2Kbps,数据位可为5、6、7或8位,可设1个奇偶校验位,1个起始位,1个、1.5个或2个停止位。Intel8251内部有7个功能模块负责实现与CPU的数据交换以及与I/O设备的数据通信功能,内部有6个寄存器,其中与异步通信方式的有关的寄存器有5个,即模式寄存器、控制寄存器、状态寄存器、数据发送寄存器和数据接收寄存器。 模式寄存器的功能是设定intel8251的工作模式,控制寄存器的功能是控制intel8251的数据发送和接收等工作过程,状态寄存器的功能是反映intel8251数据发送和接收等工作的状态,各寄存器的格式如图5-1、图5-2和图5-3所示。当CPU把需发送的数据写入数据发送寄存器后,intel8251将自动把数据组成帧并逐位发送出去。Intel8251能自动完成数据接收操作,并把接收到的数据存放在数据接收寄存器中,CPU 从中读取即可。 图5-1模式寄存器格式图5-2 控制寄存器格式 图5-3 状态寄存器格式 CPU对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。对状态寄存器和数据接收寄存器只能读出,不能写入。Intel8251使用2个地址来访问内部的寄存器,其中用偶地址访问数据发送寄存

串行通信接口标准详解

几种串行通信接口标准详解 在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。远距离串行通信必须使用Modem,增加了成本。在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m=和远距离(>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。 1977年EIA制定了RS-449。它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。另外,还有RS-485,它是RS-422的变形。RS-422、RS-423是全双工的,而RS-485是半双工的。 RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。 RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。 因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。 串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样 一.RS-232-C详解 串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C 标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都

电脑串口介绍_DB9_DB25

串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。 RS-422:为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。 RS-485:为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。 Universal Serial Bus(通用串行总线)简称USB,是目前电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,

I2C串行接口介绍

I2C串行总线通信原理

采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。 常用的串行扩展总线有:I2C (Inter IC BUS)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线等。本章仅讨论I2C串行总线。

一、IIC概述 IIC(Inter-Integrated Circuit)总线,许多文献写作I2C,主要用于同一电路板内各集成电路模块(IC)之间的连接。IIC采用双向2线制串行数据传输方式,简化IC之间的通信连接。IIC协议是PHILIPS公司于二十世纪八十年代初提出,其后,PHILIPS和其他厂商提供了种类丰富的IIC兼容芯片。目前,IIC总线标准已经成为世界性的工业标准。各大半导体公司推出了大量的带有IIC接口的芯片,如RAM、EEPROM、Flash ROM、A/D、D/A转换、 LED/LCD驱动、I/O接口、实时时钟等。

二、IIC总线特点 在硬件结构上,它采用数据(SDA)和时钟(SCL)两根线来完成数据的传输及外围器件的扩展,任何一个具有IIC总线接口的外围器件,不论其功能差别有多大,都具有相同的电气接口,因 此都可以挂接在总线上,使其连接方式变得十分 简单。 对各器件的寻址是软寻址方式,因此节点上没有必须的片选线,器件地址给定完全取决于器件 类型与单元结构,这也简化了IIC系统的硬件连接。

另外IIC总线能在总线竞争过程中进行总线控制权的仲裁和时钟同步,并且不会造成数据丢失,因此由IIC总线连接的多机系统可以是一个多主机系统,支持多主控。 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

单片机串口通讯实验报告

实验十单片机串行口与PC机通讯实验报告 ㈠实验目的 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制; 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议; 3.了解PC机通讯的基本要求。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 ㈢实验内容及要求 利用8051单片机串行口,实现与PC机通讯。 本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC 机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。 ㈣实验步骤 1.编写单片机发送和接收程序,并进行汇编调试。 2.运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定 为1200。 3.运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符), 检查PC机所接收的字符是否与发送的字符相同。 4.将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检 查实验板LED数码管所显示的字符是否与PC机发送的字符相同。

㈤ 实验框图

源程序代码: ORG 0000H AJMP START ORG 0023H AJMP SERVE ORG 0050H START: MOV 41H,#0H ;对几个存放地址进行初始化 MOV 42H,#0H MOV 43H,#0H MOV 44H,#0H MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示 MOV TMOD,#20H ;设置为定时器0,模式选用2 MOV TL1, #0E6H ;设置1200的波特率 MOV TH1, #0E6H SETB TR1 ;开定时器 MOV SCON,#50H ;选用方式1,允许接收控制 SETB ES SETB EA ;开中断 LOOP: ACALL SOUT ;键盘扫描并发送,等待中断 SJMP LOOP SERVE JNB RI,SEND ;判断是发送中断还是接收中断,若为发送中 断则调用 ACALL S IN ;发送子程序,否则调用接收子程序 RETI SEND: CLR TI ;发送子程序 RETI SIN: CLR RI ;接受子程序 MOV SCON, #00H MOV A, SBUF ;接收数据 LCALL XS ;调用显示子程序 RETI 子程序: SOUT: CLR TI ;清发送中断标志位 LCALL KEY ;调用判断按键是否按下子程序 MOV A,R0 ;将按键对应的数字存入A MOV SBUF,A ;输出按键数字给锁存 RET KEY: MOV P1,#0FFH ;将P1设置为输入口 MOV A, P1 CPL A ;将A内值取反

串口详细介绍

1、串口的应用 它是一个数据通信的协议,在实际应用中:对设备运行日志的数据采集,另一个就是程序的调试。 这里所说的串口是RS232电平的。 2、通信的相关概念 1)全双工:在同一时刻,既能接收数据同时还可以发送数据 半双工:在同一时刻,只能接收数据或者发送数据 2)同步:在物理连接上是有一条时钟线的,用这种通信方式就必须有一个主机,因为时钟是由主机控制的

这个只是一个简单的串口应用,实际的串口是有9条线连接的 TTL:直接是有MCU输出的 ‘1’:电压范围——2.5~3.3V(主要是指ARM芯片),4~5V(主要是指51内核的芯片) ‘0’:电压范围——0.5~0V(这个是包含所有的芯片) 这里所说的电压范围是在实际的硬件设计中要保证的。 232:这个是经过232芯片之后的电平 ‘1’:-3~-15V ‘0’:3~15V 在实际中测试得到的电平电压是9V和-9V

5,数据传输的协议:(是保证数据发送和接收一致,但是对数据的含义没有规定)起始位数据位奇偶校验位停止位 所占位数15~811/2电平00/10/11 常用协议格式 1+8+0+1=10位 起始位:表示一帧数据的开始 数据位:发送的有效数据 奇偶校验位:检验有效数据是否传输正确,可靠性不高 停止位:表示一帧数据的结束 总线空闲:总线上没有数据传输(高电平) 开始位:0--低电平(空闲态检测到下降沿) 数据位:(用户所要发送的数据)5~8(7/8)--ASCII码(8位)--字节(8位)奇偶校验位:判断数据位中1+奇偶校验位中的1必须为奇数/偶数。 奇校验:数据位中1+奇偶校验位中的1必须为奇数。 偶校验:数据位中1+奇偶校验位中的1必须为偶数 停止位:1--高电平 6,波特率 相当于串口发送的速率 串口每秒钟发送的位数 常见:48009600115200 注意:两个设备的波特率必须相同

RS-485串行接口标准

RS-485串行接口标准 1、平衡传输 RS-485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。 2、RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。 RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑 鳵S-422是4k健; 旧峡梢运礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。 RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 在MCU之间中长距离通信的诸多方案中、RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域、但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷、一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障、因此提高RS-485总线的运行可靠性至关重要、 1 RS-485接口电路的硬件设计

实验7串行接口输入输出实验

北京林业大学 11学年—12学年第 2 学期计算机组成原理实验任务书 专业名称:计算机科学与技术实验学时: 2 课程名称:计算机组成原理任课教师:张海燕 实验题目:实验七串行接口输入输出实验 实验环境:TEC-XP+教学实验系统、PC机 实验内容 1.串行接口输入输出; 2.串行接口扩展。 实验目的 学习串行口的正确设置与使用。 实验要求 1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。 2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果; 3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 必要知识 串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲

寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。 串行接口用于执行数据的输入输出操作。一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。接口芯片与输入输出设备之间的数据传送过程无需另外管理,会自动完成。 教学计算机使用8位的IO端口地址,安排在IN和OUT指令的低位字节,指令的高8位用作指令操作码,16为的指令编码全部占满,已经不能再指定要使用的通用寄存器,最终决定用对IN和OUT指令默认使用运算器中的R0完成输入输出操作。IO地址端口的高4为(最高一位的值一定为1)用于通过译码电路产生接口芯片的8个片选信号,低4位用于选择一个芯片内最多16个寄存器。教学计算机中,只为每个串行口芯片地址分配了两个地址,第一路串行接口的端口地址为80H/81H,第二路串行接口的端口地址可以由用户从90/91~F0/F1这8对中选择,把译码器的一个输出连接到接口芯片的片选信号引脚。两个端口地址如何能够按照选择接口芯片内的4个寄存器呢?请注意,4个寄存器中的两个只用于输入,仅对IN 指令有用,另外两个只用于输出,仅对OUT指令有用。2个端口地址和2条输入输出指令有如下4种组合,分别实现如下4项功能: IN 80:完成从接口芯片输入数据缓冲器读出8位数据并传送到R0寄存器低位字节; OUT 80:完成把R0寄存器低位字节的8位数据写入到接口芯片的输出数据缓冲器; IN 81:完成从接口芯片状态寄存器读出8位接口状态信息并传送到R0寄存器低位字节; OUT 81:完成把R0寄存器低位字节的8位命令信息写入到接口芯片的命令寄存器。 可以看到,偶数地址用于输入输出数据,奇数地址用于输入输出状态或命令信息。 实验说明 1.TEC-XP+配置了两个串行接口COM1 和COM2,其中COM1 口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC 机或终端相连;而COM2 口,留给用户扩展用。

串行端口

串行端口一直被视为计算机最基础的外部连接设备之一,在过去它一直是大多数计算机不可缺少的组成部分虽然许多较新的系统在采用USB连接设备后已经彻底放弃了串行接口,但大多数调制解调器都任然在使用,不过计算机所带的串行端口一般不会超过两个。 串行端口(serial port),或称串口,主要用于串列式逐位元数据传输。常见的为一般电脑应用的RS-232(使用25针或9针连接器),工业电脑应用的半双工RS-485与全双工RS-422。 串口也叫串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C,RS-422,RS485,USR等。RS-232-C,RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接外挂程式,电缆或协议。USB是近几年新发展起来的新型接口标准,主要用于高速数据传输领域。 RS-232-C:也称标准串口,是目前最常用的一种串行通信接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D形插头座。后来的PC上使用简化了得9芯D 形插座。现在应用中25芯插头座以很少采用了,现在的电脑一般有两个串行口:COM1和COM2,你到计算机后能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机项链。 RS-422:为改进RS-232通信距离短,速率低得缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s 时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送,多机接收得单向,平衡传输规范,被命名为TIA/EIA-422-A标准。 RS-485:为了拓展应用范围EIA有在RS-422基础上制定了RS-485标准,增加了多点,双向通信能力,即允许多个发送器连接到一根总线上,同时增加发送器的驱动能力和冲突保护特性拓展了总线共模范围,后命名为TIA/EIA-485-A标准USB接口

串行接口RS232介绍及应用

目录 [隐藏] ? 1 标准的细节 o 1.1 连接器 o 1.2 电缆 o 1.3 设置 ? 2 類似裝置 ? 3 外部連結 [编辑]标准的细节 在RS-232标准中,字符是以一序列的位元串来一个接一个的串列(serial)方式傳輸,優點是傳輸線少,配線簡單,傳送距離可以較遠。最常用的编码格式是异步起停asynchronous start-stop格式,它使用一个起始位元后面紧跟7或8 个数据位元(bit),这个可能是奇偶位元,然后是两个停止位元。所以发送一个字符至少需要10位元,带来的一个好的效果是使全部的传输速率,发送信号的速率以10划分。一个最平常的代替异步起停方式的是使用高级数据链路控制协议(HDLC)。 在RS-232标准中定义了逻辑一和逻辑零电压级数,以及标准的传输速率和连接器类型。信号大小在正的和负的3-15v之间。RS-232规定接近零的电平是无效的,逻辑一规定为负电平,有效负电平的信号状态称为传号marking,它的功能意义为OFF,逻辑零规定为正电平,有效正电平的信号状态称为空号spacing,它的功能意义为ON。根据设备供电电源的不同,±5、±10、±12和±15这样的电平都是可能的。

mark和space是从电传打字机中来的术语。电传打字机原始的通信是一个简单的中断直流电路模式,类似与圆转盘电话拨号的中的信号。Marking状态是指电路是断开的,spacing状态就是指电路是接通的。一个space就表明有一个字符要开始发送了,相应的停止的时候,停止位就是marking。当线路中断的时候,电传打字机不打印任何有效字符,周期性的连续收到全零信号。 [编辑]连接器 9個接腳 RS-232設計之初是用來連接數據機做傳輸之用,也因此它的腳位意義通常也和數據機傳輸有關。RS-232的设备可以分为数据终端设备(DTE,Data Terminal Equipment, For example, PC)和数据通信设备(DCE,Data Communication Equipment)两类,这种分类定义了不同的线路用来发送和接受信号。一般来说,计算机和终端设备有DTE连接器,调制解调器和打印机有DCE连接器。但是这么说并不是总是严格正确的,用配线分接器测试连接,或者用试误法来判断电缆是否工作,常常需要参考相关的文件说明。 RS-232指定了20个不同的信号连接,由25个D-sub(微型D类)管脚构成的DB-25连接器。很多设备只是用了其中的一小部分管脚,出于节省资金和空间的考虑不少机器采用较小的连接器,特别是9管脚的D-sub或者是DB-9型连接器被广泛使用绝大多数自IBM的AT机之后的PC机和其他许多设备上。DB-25和DB-9型的连接器在大部分设备上是雌型,但不是所有的都是这样。最近,8管脚的RJ-45型连接器变得越来越普遍,尽管它的管脚分配相差很大。EIA/TIA 561标准规定了一种管脚分配的方法,但是由Dave Yost发明的被广泛使用在Unix计算机上的Yost串连设备配线标准("Yost Serial Device Wiring Standard")以及其他很多设备都没有采用上述任一种连线标准。 下表中列出的是被较多使用的RS-232中的信号和管脚分配: DB9 Male (Pin Side) DB9 Female (Pin Side) ------------- ------------- \ 1 2 3 4 5 / \ 5 4 3 2 1 / \ 6 7 8 9 / \ 9 8 7 6 / --------- --------- 信号DB-25 DB-9 EIA/TIA 561 Yost 公共接地7 5 4 4,5

相关文档