用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查閱.