异步串行通信设计

异步串行通信设计
异步串行通信设计

******************

实践教学

摘要

在计算机技术迅速发展及其广泛应用的今天,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。

本次课程设计主要是系统中上位PC机与下位单片机之间进行异步串行通信的解决方案,实现了上位机向下位机发送信息以及下位机接收上位机的数据并能够向上位机发送数据的功能。在此系统中,上、下位机分工明确,作为下位机核心器件的单片机只负责数据的采集和通信,而上位机以基于图形界面的Windows系统为操作平台。在软件设计中,采用VC++6.0设计异步串口通信程序。

关键词:串行通信;异步通信;单片机

目录

前言 ------------------------------------------------------------------------------------------------------------ 2第一章异步串行通信系统组成原理 --------------------------------------------------------------------- 3 1.1 串行通信原理 --------------------------------------------------------------------------------------------- 3 1.2 串行通信的传输方式 ------------------------------------------------------------------------------------ 3 1.3 通信协议的使用 ------------------------------------------------------------------------------------------ 4 1.4 51单片机概述 --------------------------------------------------------------------------------------------- 4 1.5 51单片机串行接口结构--------------------------------------------------------------------------------- 5第二章系统设计 ---------------------------------------------------------------------------------------------- 7 2.1 系统设计思路 --------------------------------------------------------------------------------------------- 7 2.2 模块组成---------------------------------------------------------------------------------------------------- 8 2.3 系统组成---------------------------------------------------------------------------------------------------- 8第三章硬件电路设计--------------------------------------------------------------------------------------- 10 3.1 RS-232接口电路设计----------------------------------------------------------------------------------- 10 3.2 MAX232接口电路--------------------------------------------------------------------------------------- 11 3.3 异步串行通信总体电路-------------------------------------------------------------------------------- 12第四章软件设计 --------------------------------------------------------------------------------------------- 14第五章调试 --------------------------------------------------------------------------------------------------- 16 5.1 调试过程--------------------------------------------------------------------------------------------------- 18 5.2 调试结果--------------------------------------------------------------------------------------------------- 18设计总结 -------------------------------------------------------------------------------------------------------- 20参考文献 -------------------------------------------------------------------------------------------------------- 21致谢------------------------------------------------------------------------------------------------------------- 22附录 ------------------------------------------------------------------------------------- 错误!未定义书签。

前言

目前,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式, 微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。而单片机具有价格低,功能强,抗干扰能力好,以及面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。在许多单片机应用系统中,上、下位机分工明确,作为下位机核心器件的单片机往往只负责数据的采集和通信,而上位机通常以基于图形界面的Windows系统为操作平台。

现阶段这种应用的核心便是数据通信,它包括单片机和上位机之间、客户端和服务器之间以及客户端和客户端之间的通信,而在单片机和上位机之间的数据通信则是整个系统的基础。单片机和PC的通信是通过单片机的串口和PC机之间的硬件连接实现。鉴于PC机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下,一般都采用给PC机配置的RS-232标准串行接口COM1、COM2等相连接来实现应用系统与PC机之间的数据交换。

现今我国工业迅速发展的情况下,对工业中的计算机控制提出了较高的要求。比如在常见的现场数据采集中,对各个采集点需要采集不同的数据,比如温度、湿度、压力、照度,这就需要单片机对计算机发出的不同的指令做出不同的反应,并且返回相应的采集到的数据。这就需要单片机和PC机进行双向数据通信。这也是本设计可以应用到的地方之一。

第一章异步串行通信系统组成原理

1.1 串行通信原理

串行通信,是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

串行通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。

异步通信所传输的数据格式(串行帧)由1个起始位、7个或8个数据位、1~2个停止位(含1.5个停止位)和1个校验位组成。起始位约定为0;空闲位约定为1。异步通信实质是指甲乙通信双方采用独立的时钟,每个数据均以起始位开始,停止位结束,起始位触发甲乙双方同步时钟。每个异步串行帧中的1位彼此严格同步,位周期相同。所谓异步是指发送、接收双方的数据帧与帧之间不要求同步,也不必同步。

同步通信所传输的数据格式(也称同步串帧)是由多个数据帧构成的,每帧有两个同步字符作为起始位以触发同步时钟开始发送或接收数据。空闲位需发送同步字符。因此,同步是指发送、接收双方的数据帧与帧之间严格同步,而不只是位与位之间严格同步。

异步通信比较灵活,适用于数据的随机发送/接收;而同步通信则是成批数据传送。异步传输一批数据因每个字节均有起始位和停止位控制而使发送/接收速度有所降低,一般适用于每秒50~9600位,而同步传输速度较快,可达每秒80万位。所以本次设计选用串行异步通信。

1.2 串行通信的传输方式

串行通信的传输方式有:

(1)单工(Simplex):数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。

(2)全双工(Full-duplex):数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下,MCU的异步串行通信接口均是全双工的。

(3)半双工(Half-duplex):数据传送也是双向的,但是在这种传输方式中,除地线之外,一般只有一根数据线。任何时刻,只能由一方发送数据,另一方接收数据,不能同时收发。

1.3 通信协议的使用

通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:

0xA1:单片机读取P0端口数据,并将读取数据返回PC机;

0xA2:单片机从PC机接收一段控制数据;

0xA3:单片机操作成功信息。

系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC接收到0xA3时,就表明单片机操作已经成功。

1.4 51 单片机概述

51单片机是一种集CPU,RAM,FLASH ROM,I/O接口和定时中断系统于一体的微型计算机。只要有外加电源和晶体振荡器就可以独立完成对数字信号的算术运算,逻辑控制,串行通信等功能。当需要处理较复杂数据或需要对多个采集数据进行综合处理以及需要进行集散控制时,单片机的算术运算和逻辑运算能力显的不足,这时往往需要借助计算机系统。将单片机采集的数据通过串行口传给PC机,由PC机高级语言或数据库语言进行处理,或者实现PC机对远程单片机进行控制。

51系列单片机内部的串行口具有通信的功能,该串行口可以作为通信接口,利用该

串行口与PC机的高级语言或数据库语言进行整理及统计等复杂处理就能满足实际的应用需要。51单片机的开发除了硬件支持外,同样离不开软件。用汇编语言或C语言等高级语言编写的源程序必须转换为机器码才能被执行。

1.5 51单片机串行接口结构

1数据缓冲器(SBUF)

接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。

2 串行控制寄存器(PCON)

SCON用于串行通信方式的选择,收发控制及状态指示。 SM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。串行接口工作方式特点见下表1-1所示:

SM0 SM1 工作方式功能波特率

0 0 0 8位同步移位寄存器

(用于I/O扩展)

fORC/12

0 1 1 10位异步串行通信

(UART)可变(T1溢出率*2SMOD/32)

1 0

2 11位异步串行通信

(UART)

fORC/或fORC/32

1 1 3 11位异步串行通信

(UART)可变(T1溢出率*2SMOD/32)

表 1-1 串行接口工作方式SM2:多机通信控制位。

REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。

TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。

RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。

RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。

3 波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

4 电源控制寄存器PCON

其最高位为SMOD。

5 波特率计算

当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= fORC/12。产生溢出所需机器周期数=模M-计数初值X。

第二章系统设计

2.1 系统设计思路

本文要求设计一个单片机与PC串口间通讯系统,实现单片机与PC机之间的远程通信。设计分发送和接收两大模块,发送部分通过硬件电路的引用。其中包括RS-232接口电路、MAX232接口电路,引用相应的管脚相连,并将相应的软件程序转入电路中,即可运行。当电路是相对独立时,可直接调速电路参数值,其影响和干扰就小。在满足发射和接收模块的要求后可单独对控制进行调整,程序的编入,接收部分相应的结果即以实现,因此实现了PC机对远端单片机的控制。

单片机和PC机之间的通信选用异步串行通信。串行通信方式从原理上可以分成两种:同步串行I/O和异步串行I/O。

(1)异步通信方式

异步方式实现简单,在微型计算机中大量使用异步串行I/O方式,为了避免连续传送过程中的误差积累,每个字符都要独立地确定起始和结束位,字符和字符间还可能有长度不定的空间时间。

异步通信方式每传送一个字符都要附加一些标志信息,因此其传输效率低,一般用于低速通信系统。但由于接收方接收每个字符时都重新同步,故少量的漂移不会造成太大的影响。

(2)同步通信方式

在同步通信中,在数据或字符开始传送前用同步字符来指示,由时钟来实现发送端和接收端同步,当检测到规定的同步字符后,就连续按顺序传送数据。同步字符是一种特定的二进制序列,在传送的数据中不会出现。

同步传送方式传输效率高,但是硬件复杂,成本高,一般用于高速率,大容量的数据通信中。在比较同步通信和异步通信的优缺点之后,我们可以在本次设计中采用异步通信方式。

2.2 模块组成

为实现该系统的生成,主要包含两大模块,即单片机模块和通信模块。

1.单片机模块

单片机模块中主要包括单片机、复位电路、晶振电路、上拉电阻和端口扩展等。端口扩展部分可以通过跳线将单片机的I/O口在系统板上的功能释放,并将其连接到扩展上。

2.通信模块

通信模块中采用MAX232作为通信电平转换电路、实现RS-232的数据传输,可以直接与PC进行通信。

2.3 系统组成

2.3.1 AT89C51单片机

在系统设计中使用AT89C51单片机作为下位机,与PC机进行串口通信。AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片,内置4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。

AT89C51包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线.

本设计中主要是利用AT89C51的异步通信(UART)模式原理实现单片机与PC机之间的串口通信的。由于CPU与接口间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,要由接收移位寄存器把串行方式转换成并行方式,由发送移位寄存器把并行方式转换成串行方式。

图 2.1 AT89C51

2.3.2 RS-232串行接口

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232C总线标准, 是美国电子工业协会(Electronic Industry Association)的推荐标准。

RS-232C标准中的许多信号是为通信业务联系或信息控制而定义的,在计算机串行通信中主要使用如下信号:

①数据传输信号: 发送数据(TXD)、接收数据(RXD)。

②调制解调器控制信号:请求发送(RTS)、清除发送(CTS)、数据通信设备准备就绪(DSR)、数据终端设备准备就绪(DTR)。

③定位信号:接收时钟(RXC)、发送时钟(TXC)。

④信号地和保护地。

第三章硬件电路设计

3.1 RS-232接口电路设计

由于AT89C51单片机最大工作电压为6V,所以在与PC机进行串口通信的时候需要进行EIA-RS-232逻辑电平转换。EIA-RS-232 是美国电子工业协会(EIA)制定的串口通信协议,“C”表示标准修第几次修改,其信号电平采用负逻辑,逻辑“1”的电平是-5V~-15V,逻辑“0”的电平为+5V~+15V,因为其有2V的噪声容限,故最终限制接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1”。因此,实际工作时,应保证电平在±(3~15)V之间。

RS-232采用不平衡传输方式,收发端的数据信号是相对信号地。9针串口引脚如表3-1所示。

9针串口(DB9)

针功能说缩

1 数据载DC

2 接收数RX

3 发送数TX

4 数据终DT

5 信号地GN

6 数据设DS

7 请求发RT

8 清除发CT

9 振铃指DE

表3-1 9针串口引脚定义

典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在5V~15V,负电平在-5V~-15V;在接收数据时,接收器的典型工作电平是3V~12V和

-3V~-12V。

串口传输数据只要有接收数据针脚和发送数据针脚就能实现,其连接方式如表3-2所示。

9针—9针

2 3

3 2

5 5

表3-2 串口通信连接方式

表3-2是对微机标准串行口而言的,还有许多非标准设备则需要根据具体情况而定。

当51单片机与PC机通过RS-232标准总线串行通信时,由于RS-232信号电平与51单片机信号电平不一致,因此,必须进行信号电平转换。其常用的方法有两种,一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现,另一种是采用专门集成芯片来实现。下面以MAX232专门集成芯片为例来介绍接口电路的实现。

3.2 MAX232接口电路

图3.1 电平转换芯片MAX232

MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一

个电源电压变换器,可以将输入+5V的电压变换成RS-232C输出电平所需的+/-12V的电压。在其内部同时也完成TTL信号电平和RS-232信号电平的转换。所以,采用此芯片实现接口电路只需单一的+5V电源就可以。

3.3 异步串行通信总体电路

图3.2是由芯片MAX232实现51单片机与PC机串行通信的典型接线图。图中外接电解电容用于电源电压变换,提高抗干扰能力,它们可以取相同数值电容1.0uF/16V.其值一般为0.1UF.选择任一组电平转换电路实行串行通信,这种发送与接收的对应关系不能连错,否则不能正常工作。

图3.2 异步串行通信接口电路

第四章软件设计

串口通信的程序可分为发射部分和接收部分。接收和发送都采用中断方式,设计单片机通信程序时,必须充分发挥单片机的效率,由于单片机多应用于实时性较强的控制场合,因此,应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑,在设计单片机通信程序时,将中断程序分为接收中断服务程序和发送中断服务程序两部分。

1、接收中断服务程序

当有数据收到时,设置一个标志通知主程序有数据到来,当地址位验证无误后,则开始接收数据。对于接收中断,程序处于等待状态,当外面有数据到来时则触发接收,进入接收中断服务程序,当地址验证正确后开始后面的数据,中断从寄存器里读取数据,将读到的数据放到全局缓冲区里,在接收数据之后设置一个标志来通知主程序,完成后等待下一中断的到来。接收中断服务程序包含了对地址位是否匹配的验证。

2、发送中断服务程序

对于发送中断,程序一般处于禁止等待状态。只有当单片机的发送缓冲区有数据需要发送,并将发送中断置为允许方式后,发送中断才开始工作。发送时从缓冲区里发送数据,遵守通信协议:首先发送地址位,然后发送需要传输的数据,最后发送校验以及结束标志。

下面为串口通信程序流程图:

图 4.1 接收中断处理

断点保护

读字符到接收缓冲区

是否接收完指定字符

接收标志RI 置0

关闭定时器

断点恢复

返回断点

重新设置启动定时器

N

Y

接收断点入口

图 4.2 发送中断处理

以上两程序可以看出采用中断有很好的结构,只要在中断服务程序里接收和发送数据,然后与主程序进行数据交换,易实现多任务操作,很好利用单片机资源。其中,发送、接收中断程序如下所示: void main() {

init_chuankou(); //初始化串口的子函数 while(1) //等待中断 { } }

断点保护

发送缓冲区是否为空

发送下一字符

发送缓冲区清空

断点恢复

断点返回

发送中断关闭TI=0

发送断点入口

Y

N

void es() interrupt 4 //中断函数,串口中断号4

{

if(RI) //串口接收数据完毕后会申请中断,由硬件置1,处于不能接收的状态,故须软件清0方可接收

{

RI=0; //接收中断标志置0,等待接收

i=SBUF; //自行判断,若有输出,则判定为接收,将缓冲区的信息存入自定义变量

SBUF=i; //若有输入,则判定为发送,将发送的信息送入缓冲区

while(TI==0); //串口发送数据完毕后会由硬件置1,处于不能发送的状态,故须软件清0方可发送

TI=0; //发送中断标志置0,等待发送

}

// else

// {

// TI=0;

// SBUF=i;

// }

第五章调试

5.1 调试过程

首先使用Keil uVsion 4将编写完成的程序编译生成HEX文件,然后在Protues软件中进行仿真实验。在Protues里面将单片机的程序文件选为这个生成的HEX文件。进行仿真,可以看到,在PC端的软件发送给单片机数据的时候,单片机收到PC机发来的数据后,会在数码管上显示数据,然后PC端会由软件给出一个消息框显示“Hello My Friend!”。

然后在硬件电路上调试。将生成的HEX文件烧录进单片机里面。进行仿真实验,可以看到,在PC端的软件发送给单片机数据的时候,单片机收到PC机发来的数据后,会在数码管上显示数据,然后PC端会由软件给出一个消息框显示“Hello My Friend!!”。

5.2 调试结果

经过修改和调试,最终的调试结果如下。首先在USPD上分配COM1、COM2

接口,然后绑定通信接口,再利用串口调试助手,使得PC机和单片机之间发送、接收数据,即异步串口通信仿真完成。仿真结果如图5.1、图5.2、图 5.3所示:

图 5.1 分配COM1、COM2接口

图 5.2 绑定通信串口

图 5.3 PC机与单片机间发送和接收数据

异步串行通信的工作方式

异步串行通信的工作方式,然后给出了VB MSComm控件下异步串行通信在电子衡器中的应用实例,包括硬件接口及软件设计。关键词:RS-232 异步串行通信Visual Basic 电子衡器控件计算机一般提供了2个25针或9针的RS-232标准串行口,简称为COM1和COM2。在某些应用中,我们还可以通过插通信卡来获得额外的RS-232标准串行口。利用这些串行口可以与其它数字设备进行一般的数据通信,计算机的串行接口主要用于远程通信和低速输入输出设备。由于串行数据通信传输线条数最少,而且有许多较便宜的专用芯片可实现它,发送和接受器也简单,因而对数据传输速度要求不高的计算机和数字设备间的近程通信,多采用串行通信实现。而目前各个厂家生产的电子衡器的称重仪表多配有与上位机通信的RS—232C串行接口,因而计算机与称重仪表之间的数据通信用串口很容易实现,只需要制作一条2芯或3芯的数据线编写相应的接口程序即可实现,不需要增加其他硬件设备。采用这种方式组成的微机电子衡器有许多优点:称重仪表经过多年的发展,在数据采集、抗干扰、可靠性等方面技术成熟,质量稳定;而计算机在存储容量、数据处理、查询、统计报表等数据管理方面有明显优势。正是两者的完美结合,才使计算机与称重仪表组成的在线式称重管理系统得到了广泛的应用。1串行通信的工作方式串行通信,可分为同步和异步两种方式。异步方式是指在约定的波特率下,传送和接受的数据不需要严格的保持同步,允许有相对的延迟,虽然速度较慢,但经济实用,所以异步串行通信现大量应用于计算机接口技术中。计算机与称重仪表就采用异步通信的方式传送数据。1.1异步串行通信的数据格式在这种通信方式中,一般以一个字符为一帧。一帧最少由三部分组成:起始位、数据位、停止位,开始是一位起始位以发送一个逻辑“0”表示,接着是表示这个数据的数据位,数据位可以是5位、6位、7位或8位,再加一位奇偶校验位,然后是一个、一个半或二个停止位,停止位以逻辑“1”表示。1.2波特率串行通信每秒传送的位数,传送时先低位后高位。常用的波特率有600、1200、2400、4800、9600等。1.3端口在计算机中,一般都配有两个标准串行口,用COM1和COM2表示。(通常采用2个9针D型阳性插头。)1.4信号线RS—232C标准规定有25根连线,使用21个信号线。在我们讨论的微机电子衡器中仅用到3根信号线,它们是:发送数据线TXD(输出信号),接受数据线RXD(输入信号线),信号地GND。其余信号线定义可参考相关书籍。2串行通信在电子衡器中的应用实例串行通信接口设计,包括硬件、软件设计两部分。在WINDOWS操作系统下,可选用VC++、VB等可视化开发工具。下面将以上海耀华称重系统公司的XK3190—A1+为例,以VB6.0编程语言,说明串行通信的软、硬件设计过程。 2.1称重仪表仪表选用上海耀华XK3190-A1+仪表,其串口通信格式如下:2.1.1连续方式发送:所传送的数据为仪表显示的当前称量(毛重或净重),每帧数据由12组数据组成。 第X组 内容及注释 1 02(XON)开始 2 +或- 符号位 3 称量数据高位 : 称量数据: : 称量数据: 8 称量数据低位 9

异步串行接口电路及通信系统设计设计报告

异步串行接口电路及通信系统设计 设计报告 2009级可编程逻辑课程名称: 实验题目:学生姓名: YC 开课学院: Bio开课时间: 2011课程设计可编程逻辑设计异步串行接口电路及通信系统设计、SXL、ZY、YLJ、WJ 学院至2012学年第二学期重庆大学本科学生课程设计指导教师评定成绩表学院年级学生姓名课程设计题目be学院2009级指导教师专业Zxm. Wxp. BME YC、SXL、ZY、YLJ、WJ 异步串行接口电路及通信系统设计指导教师评语课程设计成绩指导教师签名:年月日重庆大学本科学生课程设计任务书课程设计题目学院BE学院异步串行接口电路及通信系统设计专业BME 年级、班09 BME 01、02班

设计要求:设计一个能进行异步全双工串行通信的模块,该模块以固定的串行数据传送格式收发数据。1)每帧数据供10 位,其中1位启动位,8位数据位,1位停止位。2)波特率为:9600。3)收发误码率摘要摘要通用串口是远程通信接口,在数字系统使用很普遍,是一个很重要的部件。本论文使用VHDL语言描述硬件功能,并适当借助Verilog HDL 语言,利用在FPGA 芯片上的综合描述,采用模块化设计方法设计UART的各个模块。其中包括波特率发生器,程序控制器,UART数据接收器和UART数据发送器,采用的外部时钟为50MHZ,波特率为9600。在QuartusII 环境下进行设计、编译和仿真。最后的程序编译仿真结果及硬件测试结果表明系统设计完全正确。关键字:VHDL; Verilog HDL;UART; 帧格式; FPGA;异步通信I 摘要Abstract In this paper, the use of

DSP与计算机的异步串行通信

1 绪论 1.1 设计背景 在DSP芯片出现之前,数字信号处理只能依靠通用微处理器来完成,由于微处理器芯片速度较低,难以满足高速实时处理的要求。1965年库利和图基发表了著名的快速傅立叶变换FFT,极大地降低了傅立叶变换的计算量,从而为数字信号的实时处理奠定了算法的基础。与此同时,伴随集成电路技术的发展,各大集成电路厂商为生产通用DSP芯片做了大量的工作。1978年AMI公司生产第一片DSP芯片S2811。1979年美国Intel公司发布了商用可编程DSP器件Intel2920,由于内部没有单周期的硬件乘法器,使芯片的运算速度,数据处理能力和运算精度受到了很大的限制。运算速度大哟为单指令周期200~250ns,应用范围仅局限于军事或航空领域。 随着时间的推移,许多国际上著名集成电路厂家都相继推出自己的DSP产品。这个时期的DSP器件在硬件结构上更适合数字信号处理的要求,能进行硬件乘法,硬件FFT变换和单指令滤波处理,其单指令周期为80~100ns,20实际80年代后期,以TI公司的TMS320C30为代表的第三代DSP芯片问世,伴随着运算速度的进一步提高,其应用范围逐步扩大到通信,计算机领域。 在2000年以后,DSP制造商不仅信号处理能力更加完善,而且是系统开发更加方便,程序编辑更加灵活,功耗进一步降低,成本不断下降。尤其是各种通用外设集成到片上,大大地提高了数字信号处理能力。这一时期的DSP运算速度可达到单指令周期10ms左右,可在Windows环境下直接应用C语言编程,使用方便灵活,使DSP芯片不仅在通信,计算机领域得到了广泛的应用,而且逐步渗透到了人们的日常消费领域。 目前DSP芯片的发展非常迅速。硬件结构方面主要是向多处理器的并行处理结构,便于外部数据交换的串行总线传输,大容量片上RAM和ROM,程序加密,增加IO驱动能力,外围电路内装化,低功耗等方面发展。软件方面主要是综合平台的完善,使DSP的应用开发更加灵活方便。

串行通信技术-模拟信号转换接口

微机原理与应用实验报告6 实验9串行通信技术 实验10A模拟信号转换接口 实验报告

实验九串行通信技术 一、实验目的 1. 了解异步串行通信原理; 2. 掌握MSP430异步串行通信模块及其编程方法; 二、实验任务 1. 了解MSP430G2553实验板USB转串口的通信功能,掌握串口助手的使用 (1)利用PC机的串口助手程序控制串口,实现串口的自发自收功能 为实现PC串口的自发自收功能,须现将实验板上的扩展板去下,并将单片机板上的BRXD和BTXD用杜邦线进行短接,连接图如下所示: 由此可以实现PC串口的自收自发功能。 (2)思考题:异步串行通信接口的收/发双方是怎么建立起通信的 首先在异步通信中,要求接收方和发送方具有相同的通信参数,即起始位、停止位、波特率等等。在满足上面条件的情况下,发送方对于每一帧数据按照起始位数据位停止位的顺序进行发送,而接收方则一直处于接受状态,当检测到起始位低电平时,看是采集接下来发送方发送过来的数据,这样一帧数据(即一个字符)传送完毕,然后进行下一帧数据的接受。这样两者之间就建立起了通信。 2. 查询方式控制单片机通过板载USB转串口与PC机实现串行通信 (1)硬件连接图

(2)C语言程序 采用SMCLK=1.0MHz时,程序如下:

其中SMCLK=1MHz,波特率采用的是9600,采用低频波特方式,则N=1000000/9600=104.1666…,故UCA0BR1=0,UCA0BR0=104,UCBRS=1; 当采用外部晶振时,时钟采用默认设置即可,程序如下:

也是采用了低频波特率方式,所以关于波特率设置的相关计算和上面是一样的。 (3)思考:如果在两个单片机之间进行串行通信,应该如何设计连线和编程? 由于在上面的连线中将单片机上的P1.2和BRXD相连,P1.1和BTXD相连,所以若要在两个单片机之间进行通信,首先应该将两个单片机的P1.2和P1.1交叉相连,并根据上面的程序进行相同的关于端口和波特率相关的设置即可实现两个单片机之间的通信。 3. (提高)利用PC机RS232通信接口与单片机之间完成串行通信 (1)硬件连接图 在实验时,采用了将PC机的串口com1直接连接至MSP430F149的孔型D9连接器上,G2553单片机的输出引脚P1.1和P1.2分别与F149单片机上的URXD1和UTXD1相连接,连接图如下所示:

北邮设计一:异步串行通信控制器

设计一:异步串行通信控制器 一、目的: ●掌握状态机的原理与设计方法; ●了解异步通信的原理和特点; ●掌握异步通信接口的设计方法。 二、异步通信原理简介: 我们主要以接收端为例来说明异步通信的工作原理,发送端可依此类推。异步通信的特点是数据在线路上的传输是不连续的,线路上数据是以一个字符为单位来传输的。异步传输时,各个字符可以是连续传输,也可以是间隔传输,这完全由发送方根据需要来决定。另外,在异步传输时,同步时钟信号并不传送到接收端,即收发双方各用自己的时钟来控制发送和接收。 由于字符的发送是随机进行的,因此,对于接收端来说就有一个判断何时有字符来,何时是新的一个字符开始的问题。因此,在异步通信时,对字符必须规定统一的格式。 异步信息传输格式 一个字符通常由四部分组成:起始位、数据位、奇偶校验位和停止位。一个字符由起始位开始,停止位结束。奇偶校验位只占一位,为了简化分析我们暂且规定不用奇偶校验位。 起始位为0信号,占用一位,来通知接收端一个新的字符开始来到。线路上不传输字符时,应保持为1。接收端不断检测线路的状态,若连续为1以后又开始测到一个0,就知道是发来一个新字符,马上应准备接收。字符的起始位还被用来同步接收端的时钟,以保证以后的接收能正确进行。接收时钟信号RXC的频率是数据率的N倍,一般N=8,16,32,64等。由于异步通信双方各用自己的时钟源,若是时钟频率等于波特率,则频率稍有偏差便会产生接收误差,因此,采用较高频率的时钟,就能保证正确地捕获到信号。 起始位后面紧接着的是数据位,它可以是5位、6位、7位和8位。我们这里规定采用8位的数据位。注意在发送时,总是低位先发送(最低位LSB,最

异步串行通信接口实验

计算机系统的通信实验 一.目的:了解计算机间的数据通信的基本技术; 了解RS─232C的结构及使用方法。RS----232C 9芯连接器插针定义如下: 二.使用设备:带有RS─232C通信接口的微型计算器及一根多芯电缆。 三.8250异步串行接口: IBM PC系统可选的串行异步通信接口板上用的UART是一片INS8250,以它为核心,附加一些辅助电路,如I / O地址译码电路电平变换电路等,组成了RS232C接口,所以,对RS232C编程实际上是对8250的编程。8250的逻辑框图如下:

(一)8250的编程模型 8250异步串行接口是用于IBM PC串行通讯的接口芯片,8250内含比特率分频器,无须外接,所以用它构成接口非常简单。有两个串口,每个串口上有10个寄存器,IBM PC系统只为这10个寄存器分配了连续的7个端口地址,其端口地址分配如下: 分配的端口地址输入还是输出相应寄存器 3F8H/2F8H*输出发送数据寄存器 3F8H/2F8H*输入接收数据寄存器 3F8H/2F8H+输出波特率分频器L(数据传输速度)3F9H/2F9H+输出波特率分频器H 3F9H/2F9H*输出中断允许寄存器 3FAH/2FAH 输入中断标识寄存器 3FBH/2FBH 输出线控制寄存器 3FCH/2FCH 输出Modem控制寄存器 3FDH/2FDH 输入线狀态寄存器 3FEH/2FEH 输入Modem狀态寄存器 注:标有*寄存器地址是线控制存器7位为0时的寄存器地址,标有+寄存器地址是线控制存器7位为1时的寄存器地址。 从功能上分,这10个寄存器可分为两组:一组用于工作方式,通信参数的控置和设置。如数据格式有关参数的设置,是否允许中断方式的设置以及是否使用RTS,DTR等联络控制信号等,属于这一组的有5个寄存器:波特率分频器L(低位)和H(高位) 线控制寄存器,Moden控制寄存器,中断允许寄存器。这5个寄存器都是在8250初始化时用OUT指令向其中置入初值的。另一组寄存器用于实现通信传输,有5个寄存器, 它包括:输入和输出的缓冲寄存器——接收数据寄存器和发送保持寄存器, 记忆当前状态的寄存器——线状态寄存器, Moden状态寄存器和中断标识寄存器。 (二)8250的初始化: 1.波特率的设置:(波特率分频器L和H)是用OUT指令向地址为3F8H和3F9H的两个波特率分频器置入合适的值实现的。 在初始化时,将线控寄存器最高为置1,然后写3F8H,3F9H便可对串行传送速率进行初始化。波特率分频器确定串行传送的速率(每秒传送的位数)如下: 波特率分频器H 分频器L 50 09H 00H 75 06H 00H 110 04H 17H 134.5 03H 59H 150 03H 00H 300 01H 80H 600 00H C0H 1200 00H 60H 1800 00H 40H 2000 00H 3AH 2400 00H 30H 3600 00H 20H

第4章 异步串行通信

第4章 异步串行通信 本章导读:目前几乎所有的台式电脑都带有9芯的异步串行通信口,简称串行口或COM 口.由于历史的原因,通常所说的串行通信就是指异步串行通信。USB、以太网等也用串行方式通信,但与这里所说的异步串行通信物理机制不同。 有的台式电脑带有两个串行口: COM1 口和COM2 口,部分笔记本电脑也带有串行口。随着 USB接口的普及,串行口的地位逐渐降低,但是作为设备间简便的通信方式,在相当长的时间内,串行口还不会消失,在市场上也可很容易购买到USB到串行口的转接器因为简单且常用的串行通信只需要三根线(发送线、接收线和地线),所以串行通信仍然是MCU与外界通信的简便方式之一。 实现异步串行通信功能的模块在一部分MCU中被称为通用异步收发器(Universal Asynch?ronous Receiver/Transmitters, UART ),在另一些 MCU 中被称为串行通信接口( Serial Communication Interface, SCI)。串行通信接口可以将终端或个人计算机连接到MCU,也可将几个分散的 MCU连接成通信网络, 本章的主要知识点有①阐述了串口相关的基础知识;②描述了K60串口糢块的功能概要; ③介绍了串口模块驱动构件编程时涉及的相关寄存器;④设计并封装了串行通信的驱动构件; ⑤给出第一个中断例程的执行过程和设计流程。 本章介绍的K60UART模块的工作原理以及编程实例,这些编程实例都使用了基于构件的编程思想,读者在阅读时可以仔细体会,以求得对编程方法有更深刻的理解本章所出现的UART 字眼,在没有其他说明的情况下,都是特指K60的UART模块,本章串口驱动编程涉及的寄存器全部给出其详细介绍,目的是让读者对嵌入式底层驱动编程设计的寄存器有个直观的了解,以后各章节将不再给出相关寄存器的详细介绍。 4.1异步串行通信的基础知识 本节简要概括了串行通信中常用的基本概念,为学习MCU的串行接口编程做准备。对于己经了解这方面知识的读者,可以略读本节。 4.1.1基本概念 “位”(bit)是单个二进制数字的简称,是可以拥有两种状态的最小二进制值,分别用“0” 和“1”表示。在计算机中,通常一个信息单位用8位二进制表示,称为一个“字节”(Byte)。串行通信的特点是:数据以字节为单位,按位的顺序(例如最高位优先)从一条传输线上发送出去。这里至少涉及以下几个问题:第一,每个字节之间是如何区分开的?第二,发送一位的持续时间是多少?第三,怎样知道传输是正确的?第四,可以传输多远?这些问题属于串行通信的基本概念。串行通信分为异步通信与同步通信两种方式,本节主要给出异步串行通信的一些常用概念。正确理解这些概念,对串行通信编程是有益的。

异步通信控制器_2010

第一.实验要求 1.这是用理论知识解决实际问题的重要环节,一定要严肃,认真,抓紧时间,尽可能多做一些实验。 2.每个同学要做两个题目,作出完整的结果。 3.根据题目要求,结合学过的有关知识,设计实现方案,思考应该达到的效果。4.认真搞懂工作原理,写好设计方案和验证方法。 5.当有多种方案可选时,要仔细比较各种方案的优缺点,选择一种你认为最好的方案来实现。 6.当实验结果出来时,要认真检查设计可能隐含的问题和毛病,并加以改进解决。有限的性能仿真,不可能仿真出实际上千差万别的情况,要从理论上考虑可能存在问题的地方,并加以预防。 7.本实验只进行‘功能仿真’,至于性能仿真(定时仿真)则不予考虑。但可以选定一种器件进行适配和管脚定义。 8.认真作好实验记录,记录出现的问题和解决方法,并仔细分析其中的原因。任何现象的解释,都要有理有据。 9.实验结束,要认真书写实验报告。除了原始输入文件外,任何原理和性能的解释都应由仿真波形来支持。 10.实验体会只写自己体会最深,收获最大的部分。不要照抄别人和指导书中的内容。11.要有实事求是的科学态度,不能伪造实验结果。 12.实验过程中,可以和同学讨论,但最终结果必须是自己独立完成的。 13.实验中,遵守机房纪律,不准做与实验无关的事情。 14.请同学抓紧时间,利用这有限的机会,争取尽可能大的收获。 第二.上机注意事项 1.上机前应作好实验准备,包括: ●了解实验的目的,实验内容及要求; ●准备好实验电路或逻辑输入原文件; ●认真思考如何验证设计及仿真波形; ●思考实验步骤,及每步应得到的结果。

2.实验中要细致、认真,并作好实验记录。 ●实验中要独立思考,有问题可以讨论,但要独立完成实验任务; ●记录中间结果,及时作好原文件拷贝; ●实验结果要以仿真波形来说明。 3.实验报告要求 ●实验目的; ●实验电路图(或输入原文件); ●仿真结果(波形图应能体现你的结论或论点); ●对思考题的理解或验证; ●实验收获和体会(只写体会最深的)。 注意: ●除了熟悉MAXPLUS2外,在上机实验时,应作好实验准备(实验内容,电路/或 原文件,及实验目的),否则,教师有权停止其上机实验。待作好准备时自己再上 机。 ●凡互相抄袭的(抄袭别人的和被抄袭的),按0分记。 ●遵守实验室纪律,在包机期间,不准玩游戏,不准做与本课程无关的事情。违规 一次,给予警告,两次,严重警告,三次,取消上机资格,本课程成绩为0分。 设计一:异步串行通信控制器 1. 目的 ●掌握状态机的原理与设计方法; ●了解异步通信的原理和特点; ●掌握异步通信接口的设计方法。 2. 异步通信原理简介 我们主要以接收端为例来说明异步通信的工作原理,发送端可依此类推。异步通信的特点是数据在线路上的传输是不连续的,线路上数据是以一个字符为单位来传输的。异步传输时,各个字符可以是连续传输,也可以是间隔传输,这完全由发送方根据需要来决定。另外,在异步传输时,同步时钟信号并不传送到接收端,即收发双方各用自己的时钟来控制发送和接收。 由于字符的发送是随机进行的,因此,对于接收端来说就有一个判断何时有字符来,何时是新的一个字符开始的问题。因此,在异步通信时,对字符必须规定统一的格式。

串行接口及串行通信技术

第9章串行接口及串行通信技术 U 难点 ?串行通信的四种工作方式 @要求 掌握: ?串行通信的控制寄存器 ?串行通信的工作方式0和方式1 了解: ?串行通信的基础知识 ?串行通信的工作方式2和方式3 9.1 串行通信的基础知识 9.2 MCS-51单片机串行通信的控制寄存器 9.3 MCS-51单片机串行通信工作方式 9.1 串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。 9.1.1 数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。 1. 字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图9.1所示: 1)起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。 2)数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。 3)奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。 4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。 图9.1 字符帧格式 异步串行通信的字符帧可以是连续的,也可以是断续的。连续的异步串行通信,是在一个字符格式的停止位之后立即发送下一个字符的起始位,开始一个新的字符的传送,即帧与帧之间是连续的。而断续的异步串行通信,则是在一帧结

第3 节 异步串口 UART

具有 Avalon 接口的通用异步收发器( universal asynchronous receiver/transmitter——UART)内核实现了Altera FPGA片上的嵌入式系统和片外设备之间的串行的字符流传输的一种方法。UART内核实现了RS-232协议的定时,并且提供可调的波特率,奇偶校验位、停止和数据位,以及可选的RTS/CTS流控制信号。特性集是可配置的,允许设计者只实现特定系统的必要的功能。UART内核提供了寄存器映射的Avalon从接口,这样就允许Avalon主外设(如Nios II处理器)通过读/写数据和控制寄存器和UART内核通信。 UART内核在SOPC Builder中提供,并且可以很容易地集成到任意的SOPC Builder 生成的系统中。 7.3.1 UART 内核功能描述 UART 内核有两个部分对用户是可见的: ?寄存器文件,通过Avalon从端口进行访问。 ?RS-232 信号,RXD、TXD、CTS和RTS。 1. Avalon从端口和寄存器 UART内核为寄存器提供一个Avalon从端口。 UART内核的用户接口包含6个16位的寄存器: control、status、rxdata、txdata、divisor和endofpacket。主外设,如Nios II 处理器,访问寄存器来控制内核,在串行的连接通道上传输数据。UART内核提供一个高电平有效的中断请求输出,当接收到新数据时或UART内核准备发送一个新的字符时,请求一个中断。 Avalon从端口能进行具有流控制的传输。UART内核可以和具有Avalon流控制的DMA外设联合使用,以实现自动的连续的数据传输,例如内核和存储器之间的传输。

异步串行接口

异步串行接口 在目前的DVB-C广播电视系统的传输接口中,有两种MPEG-2视频传输接口标准:异步串行接口标准ASI和同步并行接口SPI。SPI一共有11位有用信号,每位信号差分成两个信号用来提高传输抗干扰性,在物理链接上用DB25传输,因此连线多且复杂,传输距离短,容易出现故障。但SPI是并行11位信号,处理简单且扩展性强,因此目前一般的MPEG-2视频编码器的输出和视频***的输入都是标准的并行1 1位信号。ASI用串行传输,只需一根同轴电缆线传输,连线简单,传输距离长。根据SPI和ASI的优缺点,需要传输信号的SPI和ASI的互相转换。 1 SPI信号结构 并行传输系统SPI包括一位时钟信号、8位数据信号、一位帧同步信号PSYNC 和一位数据有效信号DVALID。帧同步信号对应TS包的同步字节047H,DVALID信号用来区分TS包的长度为188个字节或204个字节。当TS包长为188字节时,D VALID信号一直为高,同时所有信号都与时钟信号保持同步。 2 ASI接口 ASI传输流可以有不同数据速率,但传输速率恒定,为270Mbps,因此ASI可以发送和接收不同速率的MPEG-2数据。ASI传输系统为分层结构。最高层、第2 层使用MPEG-2标准ISO/IEC 13818-(Systems),第0层和第1层是基于ISO/I EO CD 14165-1的FC纤维信道。FC支持多种物理传输媒介。 首先将包同步的MPEG-2传送包的8-bit码字转换成10-bit码字;接着在并/串转换时,当要求输入一个新字、而数据源还没有准备好时,应插入一个K28.5的同步字,以达到ASI的固定270Mbps传输速率。所形成的串行比特流将通过缓冲/驱动电路和耦合网络,送到同轴电缆连接器上。插入同步码字可以有三种方法:传输码流的单个字节前后不能都是同步字;传输码流的单个字节前后必须都是同步字;或者是两者的组合。 到达同轴电缆的接收数据,首先要经过连接器和耦合网络耦合到恢复时钟和数据的电路上,然后进行串/并变换;为了恢复字节同步,ASI***必须先搜寻到K28.5同步字,一旦搜索到该同步字,即为随后接收的数据标定了边界,从而建立了***输出字节的正确字节排列;最后进行10/8-bit变换,恢复出包同步的MPEG-2 TS码流数据。但是K28.5同步字不是有效数据,因此解码时必须删除。 3 ASI接口实现方案 在本方案中,MPEG-2 TS码流由单片MPEG-2编码器MB86390提供,它输出符合SPI标准的并行11位信号,TS包长度为188个字节。在SPI/ASI转换方案中,

异步串行通信设计

****************** 实践教学 摘要 在计算机技术迅速发展及其广泛应用的今天,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。 本次课程设计主要是系统中上位PC机与下位单片机之间进行异步串行通信的解决方案,实现了上位机向下位机发送信息以及下位机接收上位机的数据并能够向上位机发送数据的功能。在此系统中,上、下位机分工明确,作为下位机核心器件的单片机只负责数据的采集和通信,而上位机以基于图形界面的Windows系统为操作平台。在软件设计中,采用VC++6.0设计异步串口通信程序。 关键词:串行通信;异步通信;单片机

目录 前言 ------------------------------------------------------------------------------------------------------------ 2第一章异步串行通信系统组成原理 --------------------------------------------------------------------- 3 1.1 串行通信原理 --------------------------------------------------------------------------------------------- 3 1.2 串行通信的传输方式 ------------------------------------------------------------------------------------ 3 1.3 通信协议的使用 ------------------------------------------------------------------------------------------ 4 1.4 51单片机概述 --------------------------------------------------------------------------------------------- 4 1.5 51单片机串行接口结构--------------------------------------------------------------------------------- 5第二章系统设计 ---------------------------------------------------------------------------------------------- 7 2.1 系统设计思路 --------------------------------------------------------------------------------------------- 7 2.2 模块组成---------------------------------------------------------------------------------------------------- 8 2.3 系统组成---------------------------------------------------------------------------------------------------- 8第三章硬件电路设计--------------------------------------------------------------------------------------- 10 3.1 RS-232接口电路设计----------------------------------------------------------------------------------- 10 3.2 MAX232接口电路--------------------------------------------------------------------------------------- 11 3.3 异步串行通信总体电路-------------------------------------------------------------------------------- 12第四章软件设计 --------------------------------------------------------------------------------------------- 14第五章调试 --------------------------------------------------------------------------------------------------- 16 5.1 调试过程--------------------------------------------------------------------------------------------------- 18 5.2 调试结果--------------------------------------------------------------------------------------------------- 18设计总结 -------------------------------------------------------------------------------------------------------- 20参考文献 -------------------------------------------------------------------------------------------------------- 21致谢------------------------------------------------------------------------------------------------------------- 22附录 ------------------------------------------------------------------------------------- 错误!未定义书签。

异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线

异步接收器传输总线(UART)、串行通信接口(SCI)和通 用串行总线 异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。 串行与并行相比 串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。

基于VHDL的异步串行通信电路设计

基于VHDL的异步串行通信电路设计 1 引言 随着电子技术的发展,现场可编程门阵列 FPGA和复杂可编程逻辑器件CPLD 的出现,使得电子系统的设计者利用与器件相应的电子CAD软件,在实验室里就可以设计自己的专用集成电路ASIC器件。这种可编程ASIC不仅使设计的产品达到小型化、集成化和高可靠性,而且器件具有用户可编程特性,大大缩短了设计周期,减少了设计费用,降低了设计风险。目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上至下地逐层完成相应的描述﹑综合﹑优化﹑仿真与验证,直到生成器件,实现电子设计自动化。其中电子设计自动化(EDA)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。 VHDL 是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。利用VHDL这些优点和先进的EDA工具,根据具体的实际要求,我们可以自己来设计串口异步通信电路。 2串口异步通信的帧格式和波特率 2.1 串行异步通信的帧格式 在串行异步通信中,数据位是以字符为传送单位,数据位的前、后要有起始位、停止位,另外可以在停止位的前面加上一个比特位(bit)的校验位。其帧格式如图1所示。 起始位是一个逻辑0,总是加在每一帧的开始,为的是提醒数据接收设备接收数据,在接收数据位过程中又被分离出去。数据位根据串行通信协议,允许传输的

字符长度可以为5、6、7或8位。通常数据位为7位或8位,如果要传输非ASCII 数据(假如使用扩展字符设置的文本或者二进制数据),数据位格式就需要采用8位。数据位被传输时从一个字符的最低位数据开始,最高位数据在最后。例如字母C在ASCII表中是十进制67,二进制的01000011,那么传输的将是11000010。校验位是为了验证传输的数据是否被正确接收,常见的校验方法是奇、偶校验。另外校验位也可以为0校验或者1校验,即不管数据位中1的个数是多少,校验位始终为0或者1,如果在传输的过程中校验位发生了变化,这就提示出现了某类错误。不过,在传输数据的时候,也可以不用校验位。停止位,为逻辑1,总在每一帧的末尾,可以是1位、1.5位或者2位。最常用的是1位,超过1位的停止位通常出现在这样的场合:在处理下一个即将发送来的字符之前接收设备要求附加时间。 2.2 串行异步通信的波特率 串行口每秒发送或接收数据的位数为波特率。若发送或接收一位数据需要时间为t,则波特率为1/ t,相应的发送或接收时钟为1/t Hz。发送和接收设备的波特率应该设置成一致,如果两者的波特率不一致,将会出现校验错或者帧错。 3 串行发送电路的设计 为简化电路设计的复杂性,采用的帧格式为: 1位开始位+8位数据位+1位停止位,没有校验位,波特率为9600。 3.1 波特率发生器的设计 要产生9600波特率,要有一个不低于9600 Hz的时钟才可以。为产生高精度的时钟,我选了6MHz(6M能整除9600)的晶振来提供外部时钟。当然,你也可以选其它频率的时钟来产生9600 Hz的时钟。对于6MHz时钟,需要设计一个625进制的分频器来产生9600波特率的时钟信号。用VHDL设计分频器较简单,在这里就不再给出源程序了。 3.2 发送电路的设计 根据采用的帧格式,需要发送的数据为10位(1位开始位、8位数据位、1位停止位),在发送完这10位后,就应该停止发送,并使发送端电平处于逻辑1,然后等候下次的发送。下面是实现上述功能的VHDL源程序: library ieee; use ieee.STd_logic_1164.all; entity Com is port(clk,en:in std_logic; Send_data:in std_logic_vector(9 downto 0); serial:out std_logic); end com;

相关文档
最新文档