用VHDL语言实现串行通信

维基教科书,自由的教学读本

用VHDL语言实现串行通信是一个计算机科学方面的知识。

串行通信与并行通信[编辑]

通俗而言,这两种通信方式可比作两种检票方法,将数据比作一个个排队的人,假设一个信息包括四个数据,则相当于每通过四个人关闭一次检票口,串行通信这一“检票方法”为:设立一个检票口,四个人按序进入。并行通信这一“检票方法”为:设立四个检票口,四个人同时进入。乍一看并行通信比较占优势,一口气过四个人,但现实情况是大部分数据通信方面使用的是串行通信,并行通信主要存在的问题在于在现实环境下其数据传输易受干扰,即同一条走道上不同的检票口可能碰上的人不一样,而且走道越长发生概率越大,而且当检票口发现四个人中其中一人与前一检票口人不一致时,四个人都需要打回去重新检票,而在串行通信抗干扰能力强,即使检票时发现人员不一致,也只需要有问题的人员回去重检,而在现今电子工业急速发展的情况下,串行通信的低效在可容忍范围内。现今电脑各接口,例如USB用的就是串行通信方式。

串行通信与VHDL语言[编辑]

对于使用何种语言实现串行通信,网络上给出的意见多为使用C语言或VB语言,其中对于单片机而言使用C语言较为合适,而与电脑相关时VB语言较常用。 在这里我们可以看到,以上两者优势的体现都是基于工作元件已给定的情况,若工作元件未给出呢?这时VHDL语言就显示出其可根据逻辑函数制定工作元件的优势了,而通过VHDL实现串行通信后,可通过设计软件的时序仿真功能研究延时存在下产生的问题。换句话说,通过VHDL语言设计出工作电路并进行生产封装,之后使用者才易于通过C语言和VB语言对封装好的器件进行编程,实现自己所需要的功能。

用VHDL语言实现串行通信[编辑]

生产可编程逻辑器件的厂商都提供与其产品向对应的VHDL设计软件,如Altera的QuartusII和Xilinix的ISE等,各软件主要差别在于生成的电路图所使用的器件不同,使用者可根据实际需求进行设计。需要注意的是,串行通信分为异步和同步两种形式,在使用VHDL语言进行设计时,若实现的是异步串行通信,则在发送端和输出端设置各自的时钟信号,若实现的是同步串行通信,则发送端和输出端使用同一个时钟信号。

下面介绍异步串行通信的VHDL实现:

异步串行通信时,每个字符作为一帧独立的信息,可以随机出现在数据流中,即每个字符出现在数据流中的相对时间是任意的。然而,一个字符一旦开始出现后,字符中各位则是以预先固定的时钟频率传送。因此,异步通信方式的“异步”主要体现在字符与字符之间,至于同一字符内部的位与位间却是同步的。可见,为了确保异步通信的正确性,必须找到一种方法,使收发双方在随机传送的字符与字符间实现同步。这种方法就是在字符格式中设置起始位和停止位。

参考资料[编辑]

  1. 杨颂华 冯毛官 孙万蓉 初秀琴 胡力山. 数字电子技术基础(第二版). 西安电子科技大学出版社. : 116–117. ISBN 978-7-5606-2178-4. 

外部链接[编辑]

  1. (中文)xilinx官网.于2013.6.12查阅.
  2. (中文)altera官网.于2013.6.12查阅.