基于fpga的rs232串口通信控制器設計_第1頁
基于fpga的rs232串口通信控制器設計_第2頁
基于fpga的rs232串口通信控制器設計_第3頁
基于fpga的rs232串口通信控制器設計_第4頁
基于fpga的rs232串口通信控制器設計_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于FPGA的RS-232串口通信控制器設計摘要串口是可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。串口通信協(xié)議也可以用于獲取遠程采集設備的數(shù)據(jù)。通過RS232以實現(xiàn)計算機之間、計算機與設備之間相互通信,目前仍是通訊領域廣泛使用的方法之一。幾乎每臺計算機都有一兩個串行接口,用來與調制解調器、實驗室設備、工控設備、POS終端等進行數(shù)據(jù)傳輸。RS-232以其方便、經濟的實現(xiàn)特點,一直深受工程界的青睞。不管是在電力、工控還是電信、金融交通等諸多行業(yè)都有廣泛的應用。系統(tǒng)主芯片采用RS-232串口通信控制器,由根本時鐘發(fā)生電路模塊,復位電路模塊,波特率選擇模塊,數(shù)據(jù)幀格式選擇模塊,串并轉換模塊組成。

2、經編譯和仿真所設計的程序,在可編程邏輯器件上下載驗證,結合FPGA技術高度靈活性與模塊化的特點,實現(xiàn)根本RS-232總線通信的功能,以實現(xiàn)串口數(shù)據(jù)幀結構選擇,串并轉換,波特率選擇等功能。通過軟件仿真,得到功能的驗證,并進行功能邏輯模塊的整合,從而驗證設計的可行性與可靠性。關鍵詞: RS-232串口通信控制器;硬件描述語言; FPGA Abstractcommunications between equipment, is still widely used method of communication field. Almost every computer has a serial int

3、erface, used and modems, laboratory equipment, industrial equipment, POS terminals, etc for data transmission. With its rs-five 232 convenient, economical realization of engineering characteristics, has been deeply favored. Whether in electric power, telecommunications, financial traffic control or

4、many industries have widely application.The master chip adopt rs-five 232 serial communication controller, the basic clock circuit module, reset circuit happened module, baud rate, data frame format selection module choice module, and conversion module composition string. The compiler and simulation

5、 design program, in programmable logic devices on FPGA technology, combining download highly flexible and modular characteristics, basic RS - 232 fieldbus communication function, in order to realize the serial data frame structure, and the conversion of choice, baud rate etc. Function. Through the s

6、imulation test, the function and the integration of the logical module function, which verified the feasibility and reliability of the design. Keywords: RS - 232 serial communication controller, Hardware description language, The FPGA目錄1 緒論11.1 選題背景11.1.1 課題相關技術的開展11.1.2 課題研究的必要性21.2 課題研究的內容32 FPGA及

7、RS-232簡介42.1 FPGA概述42.1.2 FPGA根本結構62.1.3 FPGA系統(tǒng)設計流程82.1.4 FPGA開發(fā)編程原理112.2 RS-232概述122.2.1 RS-232電氣特性132.2.2 RS-232連接器的機械特性132.2.3 RS-232的接口信號143 RS-232串口通信控制器硬件設計方案183.1 鎖相環(huán)設計183.2 模式選擇模塊設計193.3 接收模塊設計193.4 發(fā)送模塊設計214 RS-232控制器軟件設計234.1 模式選擇模塊軟件設計234.2 接收模塊軟件設計244.3 發(fā)送模塊軟件設計265 研究展望28實驗結論29致謝30參考文獻31

8、附錄321 緒論現(xiàn)代社會的標志之一就是信息產品的廣泛使用,而且是產品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產品高速開展的根底就是微電子制造工藝水平的提高和電子產品設計開發(fā)技術的開展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化electronic design automatic,EDA技術。本設計采用的VHDL是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統(tǒng)行為級、存放器傳輸級和邏輯門級三個不同層次的設計;支持結構、數(shù)據(jù)流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應用中越來越廣泛。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯

9、處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發(fā)周期短、設計制造本錢低、開發(fā)工具先進、標準產品無需測試、質量穩(wěn)定以及可實時在線檢測等優(yōu)點。在控制系統(tǒng)中,鍵盤是常用的人機交換接口,當所設置的功能鍵或數(shù)字鍵按下的時候,系統(tǒng)應該完成該鍵所設置的功能。因此,鍵信息輸入是與軟件結構密切相關的過程。根據(jù)鍵盤的結構不同,采用不同的編碼方法。但無論有無編碼以及采用什么樣的編碼,最后都要轉換成為相應的鍵值,以實現(xiàn)按鍵功能程序的轉移。1.1 選題背景本節(jié)將從FPGA嵌入式應用開發(fā)技術與數(shù)字鐘技術開展的客觀實際出發(fā),通過對該技術開展狀況的了解,以及課題本身的需要,指出研究基

10、于FPGA的芯片系統(tǒng)與設計數(shù)字鐘的設計與實現(xiàn)的必要性。 課題相關技術的開展當今電子產品正向功能多元化,體積最小化,功耗最低化的方向開展。它與傳統(tǒng)的電子產品在設計上的顯著區(qū)別師大量使用大規(guī)模可編程邏輯器件,使產品的性能提高,體積縮小,提高產品的自動化程度和競爭力,縮短研發(fā)周期。EDA技術正是為了適應現(xiàn)代電子技術的要求,吸收眾多學科最新科技成果而形成的一門新技術。美國ALTERA公司的可編程邏輯器件采用全新的結構和先進的技術,加上MaxplusII(或最新的QUARTUS)開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點,十分方便進行電子產品的開發(fā)和設計。EDA技術,技術以大規(guī)??删幊踢壿嬈骷樵O計載體,

11、以硬件描述語言為系統(tǒng)邏輯描述主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟件,自動完成用軟件的方式設計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡,邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或專用集成芯片的一門新技術。本設計利用VHDL硬件描述語言結合可編程邏輯器件進行的,并通過數(shù)碼管動態(tài)顯示計時結果。數(shù)字鐘可以由各種技術實現(xiàn),它具有易學,方便,新穎,有趣,直觀,設計與實驗工程成功率高,理論與實踐結合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設計庫,模塊化的工具以及LPM定制等優(yōu)良性能,應用

12、非常方便。因此,本設計采用可編程邏輯器件實現(xiàn)。 課題研究的必要性現(xiàn)在是一個知識爆炸的新時代。新產品、新技術層出不窮,電子技術的開展更是日新月異。可以毫不夸張的說,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。在這快速開展的年代,速度,精準對人們來說是越來越珍貴,在快節(jié)奏的生活時, RS-232串口通信控制器給人們帶來了極大的方便。近些年,隨著科技的開展和社會的進步,人們對科技的要求也越來越高,傳統(tǒng)的東西已不能滿足人們的需求。 課題研究的內容本設計主要研究基于FPGA的RS-232串口控制器,針對具體設計要求進行原理設計可在一般電子線路CAD軟件,如protel99

13、se上完成,提供電子版電路原理圖用Quartus軟件進行時序仿真,驗證設計性能的可行性與可靠性,并提供相應的仿真效果圖采用VHDL語言設計相關的功能化模塊,實現(xiàn)串口數(shù)據(jù)幀結構選擇,串并轉換,波特率選擇等功能。通過具體操作,驗證設計的穩(wěn)定性與操作的靈活性。2 FPGA及RS-232簡介2.1 FPGA概述FPGAFieldProgrammable Gate Array,即現(xiàn)場可編程門陣列,是目前應用最廣泛的現(xiàn)場可編程邏輯器件FPLD之一。FPGA是一類高集成度的可編程邏輯器件,起源于美國的Xillnx公司,該公司于1985年推出了世界上第一塊FPGA芯片。在這二十年的開展過程中,F(xiàn)PGA的硬件體

14、系結構和軟件開發(fā)工具都在不斷的完善,日趨成熟。從最初的1200個可用門,90年代時幾十萬個可用門,開展到目前數(shù)百萬門至上千萬門的單片F(xiàn)PGA芯片,Xilinx、Altera等世界頂級廠商已經將FPGA器件的集成度提高到一個新的水平。FPGA結合了微電子技術、電路技術、EDA技術,使設計者可以集中精力進行所需邏輯功能的設計,縮短設計周期,提高設計質量。 FPGA的應用領域最初為通信領域,但目前,隨著信息產業(yè)和微電子技術的開展,可編程邏輯嵌入式系統(tǒng)設計技術已經成為信息產業(yè)最熱門的技術之一,應用范圍普及航空航天、醫(yī)療、通訊、網絡通訊、安防、播送、汽車電子、工業(yè)、消費類市場、測量測試等多個熱門領域。并

15、隨著工藝的進步和技術的開展,向更多、更廣泛的應用領域擴展。越來越多的設計也開始以ASIC轉向FPGA, FPGA正以各種電子產品的形式進入了我們日常生活的各個角落。目前以硬件描述語言Verilog 或 VHDL所完成的電路設計,可以經過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設計驗證的技術主流。這些可編輯元件可以被用來實現(xiàn)一些根本的邏輯門電路比方AND、OR、XOR、NOT或者更復雜一些的組合功能比方解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器Flipflop或者其他更加完整的記憶塊。2. FPGA的開展歷史 早期的可編程邏

16、輯器件只有可編程只讀存儲器PROM、紫外線可擦除只讀存儲器EPROM和電可擦除只讀存儲器E2PROM三種。由于結構的限制,它們只能完成簡單的數(shù)字邏輯功能。其后出現(xiàn)了一類結構上稍復雜的可編程芯片,即可編程邏輯器件PLD,它能夠完成各種數(shù)字邏輯功能。典型的PLD由一個“與門和一個“或門陣列組成,而任意一個組合邏輯都可以用“與或表達式來描述,所以PLD能以乘積和的形式完成大量的組合邏輯功能。這一階段的產品主要有PAL可編程陣列邏輯和GAL通用陣列邏輯。 PAL由一個可編程的“與平面和一個固定的“或平面構成,或門的輸出可以通過觸發(fā)器有選擇地被置為存放狀態(tài)。PAL器件是現(xiàn)場可編程的,它的實現(xiàn)工藝有反熔絲

17、技術、EPROM技術和E2PROM技術。還有一類結構更為靈活的邏輯器件是可編程邏輯陣列PLA,它也由一個“與平面和一個“或平面構成,但是這兩個平面的連接關系是可編程的。PLA器件既有現(xiàn)場可編程的,也有掩膜可編程的。在PAL的根底上又開展了一種通用陣列邏輯GAL,Generic ArrayLogic,如GAL16V8、GAL22V10等。它采用了EPROM工藝,實現(xiàn)了電可擦除、電可改寫,其輸出結構是可編程的邏輯宏單元,因而它的設計具有很強的靈活性,至今仍有許多人使用。這些早期的PLD器件的一個共同特點是可以實現(xiàn)速度特性較好的邏輯功能,但其過于簡單的結構也使它們只能實現(xiàn)規(guī)模較小的電路。 為了彌補這

18、一缺陷,20世紀80年代中期,Altera和Xilinx分別推出了類似于PAL結構的擴展型CPLDComplex Programmable Logic Dvice和與標準門陣列類似的FPGAFieldProgrammable Gate Array,它們都具有體系結構和邏輯單元靈活、集成度高以及適用范圍寬等特點。這兩種器件兼容了PLD和通用門陣列的優(yōu)點,可實現(xiàn)較大規(guī)模的電路,編程也很靈活。與門陣列等其他ASICApplication Specific IC相比,它們又具有設計開發(fā)周期短、設計制造本錢低、開發(fā)工具先進、標準產品不需測試、質量穩(wěn)定以及可實時在線檢驗等優(yōu)點,因此被廣泛應用于產品的原型設

19、計和產品生產一般在10 000件以下之中。幾乎所有應用門陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場合均可應用FPGA和CPLD器件。FPGA和CPLD的內部結構稍有不同。通常,F(xiàn)PGA中的存放器資源比擬豐富,適合同步時序電路較多的數(shù)字系統(tǒng);CPLD中組合邏輯資源比擬豐富,適合組合電路較多的控制應用。在這兩類可編程邏輯器件中,CPLD提供的邏輯資源較少,而FPGA提供了最高的邏輯密度、最豐富的特性和極高的性能,已經在通信、消費電子、醫(yī)療、工業(yè)和軍事等各應用領域當中占據(jù)重要地位。因此,本文主要針對FPGA進行闡述。2. FPGA根本結構FPGA具有掩膜可編程門陣列的通用結構,它由邏輯功能塊排成陣列

20、,并由可編程的互連資源連接這些邏輯功能塊來實現(xiàn)不同的設計。FPGA一般由3種可編程電路和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM組成。這3種可編程電路是:可編程邏輯模塊CLB-Configurable Logic Block、輸入/輸出模塊IOB-I/O Block和互連資源IRInterconnect Resource??删幊踢壿嬆KCLB是實現(xiàn)邏輯功能的根本單元,它們通常規(guī)那么的排列成一個陣列,散布于整個芯片;可編程輸入/輸出模塊IOB主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關,它們將各個CLB之間或CLB、IO

21、B之間以及IOB之間連接起來,構成特定功能的電路。1.CLB是FPGA的主要組成局部。圖2-1是CLB根本結構框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB中3個邏輯函數(shù)發(fā)生器分別是G、F和H,相應的輸出是G 、F和H。G有4個輸入變量G1、G2、G3和G4;F也有4個輸入變量F1、F2、F3和F4。這兩個函數(shù)發(fā)生器是完全獨立的,均可以實現(xiàn)4輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H有3個輸入信號;前兩個是函數(shù)發(fā)生器的輸出G和F,而另一個輸入信號是來自信號變換電路的輸出H1。這個函數(shù)發(fā)生器能實現(xiàn)3輸入變量的各種組合函數(shù)。這3個函數(shù)發(fā)生器結合起來,可實現(xiàn)多達9變量的邏輯函數(shù)

22、。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器四選一、二選一等,通過對CLB內部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發(fā)器的鼓勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。這些數(shù)據(jù)選擇器的地址控制信號均由編程信息提供,從而實現(xiàn)所需的電路結構。CLB中的邏輯函數(shù)發(fā)生器F和G均為查找表結構,其工作原理類似于ROM。F和G的輸入等效于ROM的地址碼,通過查找ROM中的地址表可以得到相應的組合邏輯函數(shù)輸出。另一方面,邏輯函數(shù)發(fā)生器F和G還可以作為器件內高速RAM或小的可讀寫存儲器使用,它由信號變換電路控制。2.輸入/輸出模塊IOB。IOB提供了器件引腳和

23、內部邏輯陣列之間的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個IOB控制一個引腳,它們可被配置為輸入、輸出或雙向I/O功能。當IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。緩沖器的輸出分成兩路:一路可以直接送到MUX,另一路經延時幾納秒或者不延時送到輸入通路D觸發(fā)器,再送到數(shù)據(jù)選擇器。通過編程給數(shù)據(jù)選擇器不同的控制信息,確定送至CLB陣列的I1和I2是來自輸入緩沖器,還是來自觸發(fā)器。當IOB控制的引腳被定義為輸出時,CLB陣列的輸出信號OUT也可以有兩條傳輸途徑:一條是直接經MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發(fā)器,再送至輸出

24、緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導通或截止,分別經上拉電阻接通Vcc、地線或者不接通,用以改善輸出波形和負載能力。CLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可編程開關矩輸入輸出模塊互連資源圖2-1 CLB根本結構3.可編程互連資源IR??删幊袒ミB資源IR可以將FPGA內部的CLB和CLB之間、CLB和IOB之間連接起來,構成各種具有復雜功能的系統(tǒng)。IR主要由許多金屬線段構成,這些金屬線段帶有可編程開關,通過自動布線實現(xiàn)各種電路的連接。2. FPGA系統(tǒng)設計流程一般說來,一個比擬大的完整的工程應該采用層

25、次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現(xiàn),這就是TOP DOWN自頂向下的設計方法。目前這種高層次的設計方法已被廣泛采用。高層次設計只是定義系統(tǒng)的行為特征,可以不涉及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉換成針對某種工藝優(yōu)化的網絡表,使工藝轉化變得輕而易舉。CPLD/FPGA系統(tǒng)設計的工作流程如圖2-2所示。系統(tǒng)劃分編譯器代碼級功能仿真綜合器適配前時序仿真適配器CPLD/FPGA實現(xiàn)適配后仿真模型適配后時序仿真適配報告ASIC實現(xiàn)VHDL代碼或圖形方式輸入仿真綜合庫器件編程文件圖2-2 CPLD/FPGA系統(tǒng)

26、設計流程流程說明:1.工程師按照“自頂向下的設計方法進行系統(tǒng)劃分。2.輸入VHDL代碼,這是設計中最為普遍的輸入方式。此外,還可以采用圖形輸入方式框圖、狀態(tài)圖等,這種輸入方式具有直觀、容易理解的優(yōu)點。3.將以上的設計輸入編譯成標準的VHDL文件。4.進行代碼級的功能仿真,主要是檢驗系統(tǒng)功能設計的正確性。這一步驟適用于大型設計,因為對于大型設計來說,在綜合前對源代碼仿真,就可以大大減少設計重復的次數(shù)和時間。一般情況下,這一仿真步驟可略去。在Quartus II用VHDL實現(xiàn)新建如圖2-3所示圖2-3新建vhdl5.利用綜合器對VHDL源代碼進行綜合優(yōu)化處理,生成門級描述的網絡表文件,這是將高層次

27、描述轉化為硬件電路的關鍵步驟。綜合優(yōu)化是針對ASIC芯片供給商的某一產品系列進行的,所以綜合的過程要在相應的廠家綜合庫的支持下才能完成。6.利用產生的網絡表文件進行適配前的時序仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。一般的設計,也可略去這一步驟。7.利用適配器將綜合后的網絡表文件針對某一具體的目標器件進行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。8.在適配完成后,產生多項設計結果:a適配報告,包括芯片內部資源利用情況,設計的布爾方程描述情況等;b適配后的仿真模型;c器件編程文件。根據(jù)適配后的仿真模型,可以進行適配后時序仿真,因為已經得到器件的實際硬件特性如時延

28、特性,所以仿真結果能比擬精確的預期未來芯片的實際性能。如果仿真結果達不到設計要求,就修改VHDL源代碼或選擇不同速度和品質的器件,直至滿足設計要求。最后將適配器產生的器件編程文件通過編程器或下載電纜載入到目標芯片CPLD/FPGA中。2. FPGA開發(fā)編程原理硬件設計需要根據(jù)各種性能指標、本錢、開發(fā)周期等因素,確定最正確的實現(xiàn)方案,畫出系統(tǒng)框圖,選擇芯片,設計PCB并最終形成樣機。CPLD/FPGA軟件設計可分為兩大塊:編程語言和編程工具。編程語言主要有VHDL和Verilog兩種硬件描述語言;編程工具主要是兩大廠家Altera和Xilinx的集成綜合EDA軟件如MAX+plusII、Quar

29、tusII、Foundation、ISE以及第三方工具如FPGA Express、Modelsim、Synposys SVS等。具體的設計輸入方式有以下幾種:1.HDL語言方式。HDL既可以描述底層設計,也可以描述頂層的設計,但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的工程最后所能到達的性能與設計人員的水平、經驗以及綜合軟件有很大的關系。2.圖形方式??梢苑譃殡娐吩韴D描述,狀態(tài)機描述和波形描述3種形式。有的軟件3種輸入方法都支持,如Active-HDL。MAX+plusII 圖形輸入方式只支持電路原理圖描述和波形描述兩種。電路原理圖方式描述比擬直觀和高效,對綜合軟件的要求不高。

30、一般大都使用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內部去,所以硬件工作速度和芯片利用率很高,但是但工程很大的時候,該方法就顯得有些繁瑣;狀態(tài)機描述主要用來設計基于狀態(tài)機思想的時序電路。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉換條件以及相應的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內部。由于狀態(tài)機到HDL語言有一種標準的對應描述方式,所以這種輸入方式最后所能到達的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關系。這種輸入方式最后所能到達的工作速度和芯片

31、利用率也是主要取決于綜合軟件。2.2 RS-232概述EIA RS-232C 是由美國電子工業(yè)協(xié)會 EIAElectronic Industry Association在1969年公布的一種串行物理接口標準。RSRecommended Standard是英文“推薦標準的縮寫,232為標識號,C表示修改次數(shù)。RS-232C 總線標準設有25條信號線,包括一個主通道和一個輔助通道。在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 RS-232C 標準規(guī)定的數(shù)據(jù)傳輸速率為每秒150、300、600、1200、2400、4800、9600、19

32、200波特。 RS-232C 標準規(guī)定,驅動器允許有2500pF的電容負載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;假設每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內的通信。串行通信接口標準經過使用和開展,目前已經有幾種。但都是在RS-232標準的根底上經過改良而形成的。所以,以RS-232C為主來討論。RS-232C標準是美國EIA(電子工業(yè)聯(lián)合會與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在020000b/s范圍內的

33、通信。這個標準對串行通信接口的有關問題,如信號線功能、電器特性都作了明確規(guī)定。由于通行設備廠商都生產與RS-232C制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信接口中廣泛采用。RS-232C 標準協(xié)議的全稱是 EIA-RS-232C 標準,其中EIA (Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RSrecommeded standard代表推薦標準,232是標識號,C代表RS232的最新一次修改1969,在這之前,有RS232B、RS232A。它規(guī)定連接電纜和機械、電氣特性、信號功能及傳送過程。例如,目前在IBM PC機上的COM1、C

34、OM2接口,就是RS-232C接口。2.2.1 RS-232電氣特性EIA-RS-232C 對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。 在TxD和RxD上: 邏輯1(MARK)=-3V-15V 邏輯0(SPACE)=+3+15V 在RTS、CTS、DSR、DTR和DCD等控制線上: 信號有效接通,ON狀態(tài),正電壓+3V+15V 信號無效斷開,OFF狀態(tài),負電壓)=-3V-15V 以上規(guī)定說明了RS-232C標準對邏輯電平的定義。對于數(shù)據(jù)信息碼:邏輯“1傳號的電平低于-3V,邏輯“0空號的電平高于+3V;對于控制信號;接通狀態(tài)ON即信號有效的電平高于+3V,斷開狀態(tài)(OFF)即信號無效的電

35、平低于-3V,也就是當傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認為無意義,因此,實際工作時,應保證電平在±(315)V之間。 EIA RS-232C 與TTL轉換:EIA RS-232C 是用正負電壓來表示邏輯狀態(tài),與TTL以上下電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA RS-232C 與TTL電路之間進行電平和邏輯關系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉換器件,如MC1488、SN75150芯片可完成TT

36、L電平到EIA電平的轉換,而MC1489、SN75154可實現(xiàn)EIA電平到TTL電平的轉換。MAX232芯片可完成TTLEIA雙向電平轉換。 2.2.2 RS-232連接器的機械特性連接器:由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。下面分別介紹兩種連接器。 1DB-25: PC和XT機采用DB-25型連接器。DB-25連接器定義了25根信號線,分為4組: 異步通信的9個電壓信號含信號地SG2,3,4,5,6,7,8,20,22 20mA電流環(huán)信號 9個12,13,14,15,16,17,19,23,24 空

37、6個9,10,11,18,21,25 保護地PE1個,作為設備接地端1腳 注意,20mA電流環(huán)信號僅IBM PC和IBM PC/XT機提供,至AT機及以后,已不支持。 2DB-9: 在AT機及以后,不支持20mA電流環(huán)接口,使用DB-9連接器,作為提供多功能I/O卡或主板上COM1和COM2兩個串行接口的連接器。它只提供異步通信的9個信號。DB-25型連接器的引腳分配與DB-25型引腳信號完全不同。因此,假設與配接DB-25型連接器的DCE設備連接,必須使用專門的電纜線。 電纜長度:在通信速率低于20kb/s時,RS-232C 所直接連接的最大物理距離為15m50英尺。 最大直接傳輸距離說明:

38、RS-232C標準規(guī)定,假設不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m50英尺??梢娺@個最大的距離是在碼元畸變小于4%的前提下給出的。為了保證碼元畸變小于4%的要求,接口標準在電氣特性中規(guī)定,驅動器的負載電容應小于2500pF。2.2.3 RS-232的接口信號RS-232 的功能特性定義了25芯標準連接器中的20根信號線,其中2條地線、4條數(shù)據(jù)線、11條控制線、3條定時信號線,剩下的5根線作備用或未定義。常用的只有10根,它們是: 1聯(lián)絡控制信號線: 數(shù)據(jù)發(fā)送準備好Data set ready-DSR)有效時ON狀態(tài),說明MODEM處于可以使用的狀態(tài)

39、。 數(shù)據(jù)終端準備好(Data terminal ready-DTR)有效時ON狀態(tài),說明數(shù)據(jù)終端可以使用。 這兩個信號有時連到電源上,一上電就立即有效。這兩個設備狀態(tài)信號有效,只表示設備本身可用,并不說明通信鏈路可以開始進行通信了,能否開始進行通信要由下面的控制信號決定。 請求發(fā)送(Request to send-RTS)用來表示DTE請求DCE發(fā)送數(shù)據(jù),即當終端要發(fā)送數(shù)據(jù)時,使該信號有效ON狀態(tài),向MODEM請求發(fā)送。它用來控制MODEM是否要進入發(fā)送狀態(tài)。 允許發(fā)送Clear to send-CTS用來表示DCE準備好接收DTE發(fā)來的數(shù)據(jù),是對請求發(fā)送信號RTS的響應信號。當MODEM已準

40、備好接收終端傳來的數(shù)據(jù),并向前發(fā)送時,使該信號有效,通知終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。 這對RTS/CTS請求應答聯(lián)絡信號是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡信號,使其變高。 接收線信號檢出(Received Line detection-RLSD)用來表示DCE已接通通信鏈路,告知DTE準備接收數(shù)據(jù)。當本地的MODEM收到由通信鏈路另一端遠地的MODEM送來的載波信號時,使RLSD信號有效,通知終端準備接收,并且由MODEM將接收下來的載波信號解調成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載

41、波檢出(Data Carrier dectection-DCD線。 振鈴指示(Ringing-RI)當MODEM收到交換臺送來的振鈴呼叫信號時,使該信號有效ON狀態(tài),通知終端,已被呼叫。 2數(shù)據(jù)發(fā)送與接收線: 發(fā)送數(shù)據(jù)(Transmitted data-TxD)通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTEDCE)。 接收數(shù)據(jù)(Received data-RxD)通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCEDTE)。 3地線 : GND、Siq.GND保護地和信號地,無方向。 上述控制信號線何時有效,何時無效的順序表示了接口信號的傳送過程。例如,只有當DSR和DTR都處于有效O

42、N狀態(tài)時,才能在DTE和DCE之間進行傳送操作。假設DTE要發(fā)送數(shù)據(jù),那么預先將DTR線置成有效(ON)狀態(tài),等CTS線上收到有效(ON)狀態(tài)的答復后,才能在TxD線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對半雙工的通信線路特別有用,因為半雙工的通信才能確定DCE已由接收方向改為發(fā)送方向,這時線路才能開始發(fā)送。 2個數(shù)據(jù)信號:發(fā)送TXD;接收RXD。 1個信號地線:SG。 6個控制信號: DSR 數(shù)傳發(fā)送準備好,Data Set Ready。 DTR 數(shù)據(jù)終端準備好,Data Terminal Ready。 RTS DTE請求DCE發(fā)送Request To Send。 CTS DCE允許DTE發(fā)送Cle

43、ar To Send,該信號是對RTS信號的答復。 DCD 數(shù)據(jù)載波檢測Data Carrier Detection,當本地DCE設備Modem收到對方的DCE設備送來的載波信號時,使DCD有效,通知DTE準備接收, 并且由DCE將接收到的載波信號解調為數(shù)字信號, 經RXD線送給DTE。 RI 振鈴信號Ringing,當DCE收到對方的DCE設備送來的振鈴呼叫信號時,使該信號有效,通知DTE已被呼叫。 由于RS232接口標準出現(xiàn)較早,難免有缺乏之處,主要有以下四點: 1接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連接。 2傳輸速率較低

44、,在異步傳輸時,波特率20Kbps。 3接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱。 4傳輸距離有限,最大傳輸距離標準值為50英尺實際15米。3 RS-232串口通信控制器硬件設計方案 在RS-232串口通信控制器設計中,一共包括鎖相環(huán),模式選擇,接受模塊和發(fā)送模塊設計四局部。3.1 鎖相環(huán)設計壓控振蕩器(用來產生信號),故名思議是根據(jù)輸入的信號的電壓該電壓是輸入信號與標準信號的誤差來調整控制他本身輸出信號的頻率和相位頻率的變化會導致相位的變化,因為是個環(huán)路,所以然后再與輸入信號比擬,直至沒有誤差時,這時壓控振蕩器的輸入為零,那么其

45、輸出就不變了。從而能穩(wěn)定鎖住輸入信號的相位,故名鎖相環(huán)。鎖相環(huán)如圖3-1所示。圖3-1 鎖相環(huán)設計流程鎖相環(huán)由鑒相器、環(huán)路濾波器和壓控振蕩器組成。鑒相器用來鑒別輸入信號之間的相位差 ,并輸出誤差電壓。誤差電壓中的噪聲和干擾成分被低通性質的環(huán)路濾波器濾除 ,形成壓控振蕩器VCO的控制電壓??刂齐妷鹤饔糜趬嚎卣袷幤鞯慕Y果是把它的輸出振蕩頻率。振蕩頻率拉向環(huán)路輸入信號頻率,當二者相等時,環(huán)路被鎖定 。鎖相環(huán)在圖中的用途是可以在收、發(fā)通信雙方建立載波同步或位同步。可以使時鐘倍頻增加,例如從圖中的25MHz變成50MHz可以使時鐘的相位穩(wěn)定3.2 模式選擇模塊設計圖3-2 模式選擇設計流程模式選擇模塊實

46、現(xiàn)對于按鍵模式輸入進行判斷,對于不同輸入命令,進行解析,得到發(fā)送與接收使能模式輸出,使功能實現(xiàn)時分操作的目的。模式選擇模塊輸入協(xié)議分為以下兩類:1 如果輸入值是0B01時,接收模塊使能輸出,同時,屏蔽發(fā)送模塊使能;2 如果輸入值是0B10時,發(fā)送模塊使能輸出,同時,屏蔽接收模塊使能。模式選擇模塊實現(xiàn)“軟件開關的作用,在每一功能時刻,保證串口控制器工作在一種模式之中,防止軟件程序“競爭,從而造成“死鎖現(xiàn)象發(fā)生,充分保證設計的平安性與運行的可靠性。3.3 接收模塊設計串口接收模塊針對于接收串行數(shù)據(jù)進行協(xié)議包的解析,實現(xiàn)串行數(shù)據(jù)輸入,并行數(shù)據(jù)輸出的功能,從接收判斷的角度,實現(xiàn)了對于串口協(xié)議的解析功能

47、。串口接收模塊,輸入控制信號分為:1 16位波特率分頻系數(shù)輸入端:其值表示對于系統(tǒng)50Mhz時鐘分頻的結果,實現(xiàn)對于不同波特率產生的分頻輸入,可以方便調節(jié)不同模式下的波特率,實現(xiàn)參數(shù)化設計。2 2位數(shù)據(jù)位輸入控制位:當前輸入表示串口控制協(xié)議中,數(shù)據(jù)位的寬度,其中“01”表示數(shù)據(jù)位為7位,“10”表示數(shù)據(jù)位為8位,“11”表示數(shù)據(jù)位為9位,“00”表示當前設置無效。3 2位校驗位輸入控制位:當前輸入表示串口控制協(xié)議中,校驗模式的選擇,其中 “01”表示奇數(shù)校驗,“10” 表示偶數(shù)校驗,“11” 表示無校驗,“00”表示當前設置無效。 4 1位停止位輸入控制:當前輸入表示串口控制協(xié)議中,停止位的模

48、式選擇,其中“0”表示1位停止位,“1”表示2位停止位。串口接收模塊,輸出控制信號分為:1 數(shù)據(jù)有效信號:0表示數(shù)據(jù)無效,1表示數(shù)據(jù)有效2 并行9位輸出數(shù)據(jù):表示當前串口協(xié)議解釋后,7至9位并行數(shù)據(jù)輸出。圖3-3 接收模塊設計3.4 發(fā)送模塊設計串口發(fā)送模塊針對于接收并行數(shù)據(jù)進行協(xié)議的組包設計,實現(xiàn)并行數(shù)據(jù)輸入,串行數(shù)據(jù)輸出的功能,從發(fā)送的角度,實現(xiàn)了對于串口協(xié)議的組合功能。發(fā)送模塊設計與接收模塊類似,依然針對波特率,數(shù)據(jù)位,校驗位,停止位進行控制,實現(xiàn)全雙向的串口通信控制功能。圖3-4發(fā)送設計流程串口發(fā)送模塊,輸入控制信號分為:1 16位波特率分頻系數(shù)輸入端:其值表示對于系統(tǒng)50Mhz時鐘分

49、頻的結果,實現(xiàn)對于不同波特率產生的分頻輸入,可以方便調節(jié)不同模式下的波特率,實現(xiàn)參數(shù)化設計。2 2位數(shù)據(jù)位輸入控制位:當前輸入表示串口控制協(xié)議中,數(shù)據(jù)位的寬度,其中“01”表示數(shù)據(jù)位為7位,“10”表示數(shù)據(jù)位為8位,“11”表示數(shù)據(jù)位為9位,“00”表示當前設置無效。3 2位校驗位輸入控制位:當前輸入表示串口控制協(xié)議中,校驗模式的選擇,其中 “01”表示奇數(shù)校驗,“10” 表示偶數(shù)校驗,“11” 表示無校驗,“00”表示當前設置無效。 4 1位停止位輸入控制:當前輸入表示串口控制協(xié)議中,停止位的模式選擇,其中“0”表示1位停止位,“1”表示2位停止位。串口發(fā)送模塊,輸出控制信號分為:1 數(shù)據(jù)輸

50、出有效指示信號:0表示數(shù)據(jù)無效,1表示數(shù)據(jù)有效2 串行輸出數(shù)據(jù):表示對于控制協(xié)議解析后,對于原配置并行數(shù)據(jù)的串并轉換后的協(xié)議輸出。4 RS-232控制器軟件設計本設計基于VHDL語言設計,實現(xiàn)了基于FPGA的硬件邏輯設計,從設計方式上,具有高度的靈活性,與可移植性,便于系統(tǒng)二次開發(fā)與工程集成整合,符合未來開展趨勢。其中,軟件設計內容,主要針對于不同模塊進行說明,對于RS-232工作過程,進行匹配解析。 模式選擇模塊軟件設計 模式選擇模塊整體工作流程如圖4-1所示:圖4-1模式判斷模塊工作流程模式判斷模塊的軟件程序,主要包括以下實體局部:entity mode_sel isport( clr:

51、in std_logic; clk: in std_logic; mode_sel: in std_logic_vector(1 downto 0); receive_enable : out std_logic; send_enable : out std_logic );end entity mode_sel;其仿真波形圖,如圖4-2所示:圖4-2模式判斷模塊仿真波形圖 接收模塊軟件設計當模式判斷為接收模塊,就先要對接收來的數(shù)據(jù)進行判斷。具體過程:第一步輸入數(shù)據(jù)產生波特率表示對于時鐘的分頻, 產生波特率時鐘然后進入數(shù)據(jù)指示,0表示數(shù)據(jù)無效,1表示數(shù)據(jù)有效;如果有效就進入指示模塊工作啟示。第

52、二步在一起正常的時候就進行起始位存放器,先判斷起始位,判斷起始位幾個周期,一般只有1到2位起始位;然后進入數(shù)據(jù)存放器,判斷有幾位數(shù)據(jù)一般是8-10個,01表示7位,10表示8位,11表示9位,00表示無效,然后輸出數(shù)據(jù),7至9位并行數(shù)據(jù)輸出;再進入校驗存放器,如果是01表示奇數(shù)校驗,10表示偶數(shù)校驗,11表示無校驗,00表示無效;最后到停止位存放器,判斷停止位有多長,0表示1位,1表示2位。第三步實現(xiàn)串行數(shù)據(jù)轉換成并行數(shù)據(jù),然后就將其數(shù)據(jù)進行提取,提取的數(shù)據(jù)在判斷校驗是否有效,如果校驗的數(shù)據(jù)有效就進行輸出,假設無效就結束。接收模塊的軟件程序,主要包括以下實體局部:entity rec_judg

53、e isport( clr: in std_logic; clk: in std_logic; judge_enable: in std_logic; data_input: in std_logic; baud_rate : in std_logic_vector(15 downto 0); data_bit : in std_logic_vector(1 downto 0); check_bit : in std_logic_vector(1 downto 0); end_bit : in std_logic; data_valid : out std_logic data_output:

54、 out std_logic_vector(8 downto 0)、 );end entity rec_judge;其中,clr為復位信號輸入,clk為50Mhz系統(tǒng)時鐘輸入,judge_enable為接收使能控制信號輸入,data_input為串行輸入數(shù)據(jù)。 其仿真波形圖,如圖4-3所示:圖4-3 接收模塊仿真波形圖 發(fā)送模塊軟件設計當模式判斷為發(fā)送模塊,就先要對發(fā)送來的數(shù)據(jù)進行判斷。具體過程:第一步輸入數(shù)據(jù)產生波特率表示對于時鐘的分頻, 產生波特率時鐘然后進入數(shù)據(jù)指示,0表示數(shù)據(jù)無效,1表示數(shù)據(jù)有效;如果有效就進入指示模塊工作啟示。數(shù)據(jù)長度是13位最大;第二步在一起正常的時候就進行起始位存放器,先判斷起始位,判斷起始位周期,一般只有1到2位起始位;然后進入數(shù)據(jù)存放器,判斷有幾位數(shù)據(jù)一般是8-10個,01表示7位,10表示8位,11表示9位,00表示無效,然后輸出數(shù)據(jù),7至9位并行數(shù)據(jù)輸出;再進入校驗存放器,如果是01表示奇數(shù)校驗,10表示偶數(shù)校驗,11表示無校驗,00表示無效;最后到停止位存放器,判斷停止位有多長,0表示1位,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論