天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

基于CPLD的異步串行通信設(shè)計(jì)

發(fā)布時(shí)間:2015-02-15 17:40

摘 要:

摘 要:異步串行通信技術(shù)在電子通信設(shè)備中被廣泛使用。隨著復(fù)雜可編程邏輯器件(CPLD)的發(fā)展,按照異步串行通信的協(xié)議,采用VHDL語(yǔ)言編程,可以將異步串行通信功能集成到CPLD內(nèi),也就是用軟件的方法實(shí)現(xiàn)硬件的功能,既減少了元器件數(shù)量、簡(jiǎn)化了電路,又提高了設(shè)計(jì)的可靠性。

關(guān)鍵詞:

關(guān)鍵詞:CPLD VHDL 異步串行通信

     異步串行通信無(wú)需數(shù)據(jù)時(shí)鐘、幀同步時(shí)鐘等時(shí)鐘信號(hào),完全依靠收發(fā)雙方約定的傳輸波特率和數(shù)據(jù)線自身的電平變化來(lái)正確的收發(fā)數(shù)據(jù),而且連線簡(jiǎn)單,廣泛應(yīng)用于電子通信設(shè)備中。

  由于許多微處理器都沒(méi)有異步串行口,為了實(shí)現(xiàn)異步串行通信,需要使用專(zhuān)用串行通信芯片,電路設(shè)計(jì)比較復(fù)雜。隨著復(fù)雜可編程邏輯器件(CPLD)的發(fā)展,按照異步串行通信的協(xié)議,采用VHDL語(yǔ)言編程,可以將異步串行通信功能集成到CPLD內(nèi),也就是用軟件的方法實(shí)現(xiàn)硬件的功能,既減少了元器件數(shù)量、簡(jiǎn)化了電路,,又提高了設(shè)計(jì)的可靠性。軟件編程采用的VHDL硬件描述語(yǔ)言,設(shè)計(jì)靈活,調(diào)試簡(jiǎn)單,可以先通過(guò)計(jì)算機(jī)進(jìn)行仿真,再投入實(shí)際使用,可大大降低設(shè)計(jì)的風(fēng)險(xiǎn)性。


1 異步串行通信基本原理

  所謂異步串行通信是指具有不規(guī)則數(shù)據(jù)段傳送特性的串行數(shù)據(jù)傳輸。異步通信數(shù)據(jù)幀的第一位是起始位,在通信線上沒(méi)有數(shù)據(jù)傳送時(shí)處于邏輯“1”狀態(tài)。當(dāng)發(fā)送設(shè)備要發(fā)送一個(gè)字符數(shù)據(jù)時(shí),首先發(fā)出一個(gè)邏輯“0”信號(hào),這個(gè)邏輯低電平就是起始位。起始位通過(guò)通信線傳向接收設(shè)備,當(dāng)接收設(shè)備檢測(cè)到這個(gè)邏輯低電平后,就開(kāi)始準(zhǔn)備接收數(shù)據(jù)位信號(hào)。因此,起始位所起的作用就是表示字符傳送開(kāi)始。當(dāng)接收設(shè)備收到起始位后,緊接著就會(huì)收到數(shù)據(jù)位。數(shù)據(jù)發(fā)送完之后,可以發(fā)送奇偶校驗(yàn)位。奇偶校驗(yàn)位用于有限差錯(cuò)檢測(cè),通信雙方在通信時(shí)需約定一致的奇偶校驗(yàn)方式。就數(shù)據(jù)傳送而言,奇偶校驗(yàn)位是冗余位,但它表示數(shù)據(jù)的一種性質(zhì),這種性質(zhì)用于檢錯(cuò),雖有限但很容易實(shí)現(xiàn)。在奇偶位或數(shù)據(jù)位之后發(fā)送的是停止位。停止位是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志。


2 復(fù)雜可編程邏輯器件(CPLD)

  復(fù)雜可編程邏輯器件—CPLD(Complex Programmable Logic Device),是從PAL的GAL器件發(fā)展出來(lái)的器件,相對(duì)而言規(guī)范大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶(hù)根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開(kāi)發(fā)軟件平臺(tái),用原理圖、硬件描述語(yǔ)言等方法,生成相應(yīng)的目標(biāo)文件,通過(guò)下載電纜將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。


3 VHDL語(yǔ)言

  VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,誕生于1982年。1987年底,VHDL被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式、描述風(fēng)格和句法十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。


4 異步串行通信設(shè)計(jì)

4.1 總體框圖

  本設(shè)計(jì)規(guī)定的數(shù)據(jù)幀格式為:1位起始位,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)位;波特率為9600bps;系統(tǒng)時(shí)鐘頻率為1.8432MHz。程序主要包括波特率發(fā)生器、發(fā)送電路和接收電路三個(gè)部分。程序的功能框圖如圖1所示。

           

基于CPLD的異步串行通信設(shè)計(jì)

4.2 波特率發(fā)生器

  波特率發(fā)生器實(shí)際上就是一個(gè)分頻器,主要是根據(jù)要求的串行口波特率,將系統(tǒng)時(shí)鐘進(jìn)行分頻,分別產(chǎn)生發(fā)送時(shí)鐘和接收時(shí)鐘。發(fā)送時(shí)鐘的頻率與串行口波特率相同。由于串行數(shù)據(jù)幀與接收時(shí)鐘是異步的,為了實(shí)現(xiàn)接收時(shí)鐘與接收數(shù)據(jù)幀的同步,需要采用高速率時(shí)鐘對(duì)接收數(shù)據(jù)進(jìn)行采樣,一般選擇16倍于波特率的時(shí)鐘頻率作為接收時(shí)鐘。本設(shè)計(jì)中,系統(tǒng)時(shí)鐘(1.8432MHz)12次分頻后得到接收時(shí)鐘(153600Hz),再將接收時(shí)鐘16次分頻后得到發(fā)送時(shí)鐘(9600Hz)。

4.3 發(fā)送電路

4.3.1 發(fā)送電路原理

  發(fā)送電路相對(duì)比較簡(jiǎn)單,當(dāng)有發(fā)送請(qǐng)求時(shí),按照發(fā)送時(shí)鐘的時(shí)序,在上升沿時(shí)刻依次發(fā)送起始位、8位數(shù)據(jù)和停止位。需要說(shuō)明的是,8位數(shù)據(jù)的發(fā)送順序是先發(fā)送低位后發(fā)送高位。發(fā)送電路的時(shí)序圖如圖2所示。

 

基于CPLD的異步串行通信設(shè)計(jì)

4.3.2 發(fā)送電路設(shè)計(jì)

  發(fā)送電路采用Moore型狀態(tài)機(jī)的方式設(shè)計(jì),包括:空閑、發(fā)送起始位、發(fā)送數(shù)據(jù)位和發(fā)送停止位四個(gè)狀態(tài)。發(fā)送電路的狀態(tài)圖如圖3所示。

  空閑狀態(tài):初始狀態(tài)為空閑狀態(tài),只有在空閑狀態(tài)下,才能檢測(cè)是否有發(fā)送請(qǐng)求,當(dāng)檢測(cè)到有發(fā)送請(qǐng)求時(shí),將8位數(shù)據(jù)裝入發(fā)送移位寄存器,進(jìn)入發(fā)送起始位狀態(tài)。

發(fā)送起始位狀態(tài):發(fā)送一位起始位,進(jìn)入發(fā)送數(shù)據(jù)位狀態(tài)。

  發(fā)送數(shù)據(jù)位狀態(tài):依次發(fā)送8位數(shù)據(jù),當(dāng)8位數(shù)據(jù)全部發(fā)送完成后,進(jìn)入發(fā)送停止位狀態(tài)。

  發(fā)送數(shù)據(jù)位狀態(tài):發(fā)送一位停止位,表示一幀數(shù)據(jù)發(fā)送完成,再次進(jìn)入空閑狀態(tài)。

 

基于CPLD的異步串行通信設(shè)計(jì)

4.4 接收電路

4.4.1 接收電路原理

  接收時(shí)鐘在每個(gè)時(shí)鐘周期都對(duì)接收數(shù)據(jù)進(jìn)行采樣,當(dāng)檢測(cè)到當(dāng)前數(shù)據(jù)位為“0”而前一個(gè)數(shù)據(jù)位為“1”時(shí),即表示檢測(cè)到了起始位。為了保證讀取數(shù)據(jù)的可靠性,每個(gè)數(shù)據(jù)位均在中間點(diǎn)進(jìn)行采樣,在檢測(cè)到起始位后,延遲8個(gè)接收時(shí)鐘周期,開(kāi)始依次讀取起始位、數(shù)據(jù)位和停止位,兩次讀取的間隔為16個(gè)接收時(shí)鐘周期。為了能夠接收連續(xù)兩幀數(shù)據(jù)中的后一幀,讀取到停止位的下一個(gè)時(shí)鐘周期(而不是延遲8個(gè)時(shí)鐘周期)即開(kāi)始檢測(cè)起始位。接收電路的時(shí)序圖如圖4所示。

 

基于CPLD的異步串行通信設(shè)計(jì)

4.4.2 接收電路設(shè)計(jì)

  接收電路同樣采用Moore型狀態(tài)機(jī)的方式設(shè)計(jì),包括:空閑、接收起始位、接收數(shù)據(jù)位和接收停止位四個(gè)狀態(tài)。接收電路的狀態(tài)圖如圖5所示。

  空閑狀態(tài):初始狀態(tài)為空閑狀態(tài),不斷對(duì)數(shù)據(jù)進(jìn)行采樣,檢測(cè)起始位,一旦檢測(cè)到起始位,即進(jìn)入接收起始位狀態(tài)。

  接收起始位狀態(tài):接收一位起始位,并對(duì)起始位的有效性進(jìn)行判別,若為虛假起始位,則返回空閑狀態(tài),若確認(rèn)起始位有效,則進(jìn)入接收數(shù)據(jù)位狀態(tài)。

  接收數(shù)據(jù)位狀態(tài):依次接收8位數(shù)據(jù),當(dāng)8位數(shù)據(jù)全部接收后,進(jìn)入接收停止位狀態(tài)。

  接收停止位狀態(tài):接收一位停止位,表示一幀數(shù)據(jù)接收完成,將8位數(shù)據(jù)送接收緩存,再次進(jìn)入空閑狀態(tài)。

                            

基于CPLD的異步串行通信設(shè)計(jì)


5 結(jié)語(yǔ)

  本文對(duì)異步串行通信的工作原理、電路設(shè)計(jì)進(jìn)行了分析,采用VHDL語(yǔ)言編程,在CPLD上實(shí)現(xiàn)了異步串行通信功能。該設(shè)計(jì)為固定波特率和數(shù)據(jù)幀結(jié)構(gòu),無(wú)需微處理器進(jìn)行額外設(shè)置,操作簡(jiǎn)單,使用方便。在實(shí)際工程應(yīng)用中,還可以根據(jù)需求,在此基礎(chǔ)上增加波特率設(shè)置、數(shù)據(jù)幀結(jié)構(gòu)設(shè)置、地址譯碼等電路,實(shí)現(xiàn)多路、波特率和數(shù)據(jù)幀結(jié)構(gòu)可設(shè)置的異步串行通信。



本文編號(hào):14943

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/kejilunwen/wltx/14943.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶(hù)7f26a***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com