串口通信发送接口

  • 格式:doc
  • 大小:240.00 KB
  • 文档页数:13

第一章绪论1.1 概述随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。

这里所说的通信是只计算机与外界的信息交换。

因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。

由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。

在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。

所以串行接口是微机应用系统常用的接口。

许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作。

1.2 现场可编程门阵列FPGAFPGA(field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路出现的,既解决了制定电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。

这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。

在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。

一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

1.3 Verilog HDL简介V erilog HDL这种硬件描述语言被用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。

第二章串行通信系统2.1 串行通信的概念和特点串行通信是指使用一条数据线(另外需要地线,可能还需要控制线),将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。

使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

串行通信的特点是:数据传送按位顺序进行,最少值只需要一根传输线即可完成,节省传输线。

与并行通信相比还有较为显著的优点,传输距离长,可以几米到几千米。

在长距离内串行数据传送速率比并行数据传送速率快,,串行通信的通信时钟频率容易提高,串行通信的干扰能力十分强,其信号间的互相干扰完全可以忽略。

正是由于串行通信的接线少、成本低,因此它在数据采集和控制系统中得到了广泛的应用,产品也多种多样。

2.2 串行通信的分类串行传输中,数据时一位一位按照到达的顺序依次传输的,每位数据的发送的接受都需要时钟来控制,发送端通过发送时钟确定数据位的开始和结束,接受端需要在适当的时间间隔对数据流进行采样来正确的识别数据。

接收端和发送端必须保持步调一致,否则数据传输就会出现差错。

为了解决以上问题,串行通信可采用以下两种方法:同步通信和异步通信。

⑴同步通信:同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。

这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。

它们均由同步字符、数据字符和校验字符(CRC)组成。

其中同步字符位于帧开头,用于确认数据字符的开始。

数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

⑵异步通信:串行异步通信即RS232通信,是主机与外部硬件设备的常用通讯方式。

可以双向传输。

异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。

数据通常以字符或者字节为单位组成字符帧传送。

字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。

发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。

异步通信中典型的帧格式是:1位起始位,7位(或8位)数据位,1位奇偶校验位,2位停止位。

2.3串行通信的工作模式通过单线传输信息是串行数据通信的基础。

三种传送模式:单工、半双工、全双工。

1.单工形式:单工形式的数据传送是单向的。

通信双方中,一方固定是发送端,另一方则固定是接收端,使用一根传输线,如图1-2所示。

图1-2 单工形式2. 半双工形式:半双工通信使用同一根传输线,即可发送数据又可接受数据,但不能同时发送和接受。

在任何时刻只鞥由其中的一方发送数据,另一方接受数据。

因此半双工形式既可以使用一条数据线,也可以使用两条数据线。

如图1-3所示。

图1-3半双工形式半双工通信中每个端口都需要有一个收/发切换电子开关,通过切换来决定数据向哪个方向传输。

因为有切换,所以会产生时间延迟,信息传输效率较低。

2.全双工形式:RS-232全双工数据通信分别由两根可以在两个不同的端点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。

如图1-4所示。

图1-4全双工形式在全双工形式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。

2.4 RS232简介通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。

RS-232 标准规定的数据传输速率为每秒150、300、600、1200、2400、4800、9600、19200波特。

RS-232 标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。

传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。

第三章 UART通信协议在异步通信中,是以字符为单位传送数据,是从低位到高位逐位传送,一个字符表示一帧信息。

串行异步通信协议中字符代码传输格式如图2.3所示,通常UART 的一帧数据由四部分组成:一个起始位S(一般逻辑为“0”),后面是数据长度可变的数据位D0~D7(一般为6位到8位之间可变,数据的低位在前),一个可选的校验位PB(可选奇校验、偶检验或不需要检验),随后是一定长度的停止位P(可选1位、1.5位、或2位),停止位必须为逻辑“1”。

在没有数据被传输时,数据线会一直处于逻辑“1”状态。

P图2-3 UART的字符帧格式a,起始位:它是数据采样的第一个点,当接收模块检测串行输入数据管脚上的电平从“1”到“0”的跳变来确定一个UART包的起始位。

起始位检测8个连续脉冲的另一个更重要的原因是,采用16倍频采样的时钟,第8个采样脉冲所对应的数据波形正好是该位数据位波形的正中点(以时钟上升沿采样),在该处读写数据应该是最安全点。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

c,奇偶校验位:在串口通信中一种简单的检错方式。

有四种检错方式:偶、奇、高和低。

当然没有校验位也是可以的。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶数个或者奇数个逻辑高位。

例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。

如果是奇校验,校验位位1,这样就有3个逻辑高位。

高位和低位不为真正的检查数据,简单置位逻辑高或者逻辑低校验。

这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

d,停止位:用于表示单个包的最后一位。

典型的值为1,1.5和2位。

停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

在UART协议中,数据的发送者与接收者不共享时钟信号,也就是说,在一次UART通信过程中,并没有一个时钟信号从发送端传输到接收端,因此,这个协议被称为异步方式。

由于没有共享时钟信号,因此在进行数据传输之前,收发双方必须协商好一个数据传输的波特率,也就是说,UART接收端应该知道发送端发送数据的波特率(相应的发送端也需要知道接收端的波特率)。

在大多数情况下,发送数据和接受数据的波特率是相同的。

UART发送端按照低位在前,高位在后的顺序移位输出数据。

一旦在初始化过程中,双方协商好了通信的波特率,收发双方的内部时钟都设定在同一波特率(但时钟的相位不同)。

在一个UART包传输开始,接收端将它的内部时钟调整到与发送端同步。

这样接收端就可以在每一位的中心位置对数据位进行采样,保证数据传输的正确性。

第四章课程设计4.1设计课题——串行通信发送接口功能:通过DE2的拨码开关来选择要发送的数据,当DE2上的某一个独立按键被按下的时候,数据会通过RS232串口发送到PC。

基本要求:掌握串口通信协议,完成串口数据的发送功能硬件验证要求:在PC机通过“串行通信接口调试助手”软件接收由DE2发送过来的数据。

4.2设计方案设计中采用动态扫描的方式把数据输出出来,共用到八个DE2开关,当DE2上的某一个独立按键被按下的时候,按键输入的信号会通过相应的端口进行传输,数据会通过RS232串口发送到PC,最后由软件调试助手显示出来。