新聞中心

        EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA實(shí)現(xiàn)異步串行通信

        基于FPGA實(shí)現(xiàn)異步串行通信

        作者: 時(shí)間:2013-10-23 來(lái)源:網(wǎng)絡(luò) 收藏

        1.2 波特率發(fā)生器模塊
        串口,就是RS 232/RS 485,要求的雙方波特率等通信格式一樣才可以通信成功。在電子通信領(lǐng)域,波特率(Baud Rate)即調(diào)制速率,指的是信號(hào)被調(diào)制以后在單位時(shí)間內(nèi)的變化,即單位時(shí)間內(nèi)載波參數(shù)變化的次數(shù)。它是對(duì)符號(hào)傳輸速率的一種度量,1 Baud即指每秒傳輸1個(gè)符號(hào)。在通用通信時(shí),波特率發(fā)生器是一個(gè)必不可少的部分。波特率發(fā)生器實(shí)際上就是一個(gè)分頻器,可以根據(jù)給定的系統(tǒng)時(shí)鐘頻率和要求的波特率算出波特率分頻因子,算出的波特率分頻因子作為分頻器的分頻數(shù)從而產(chǎn)生所需的時(shí)鐘頻率。在設(shè)定發(fā)送和接收使用相同的波特率的情況下,UART只需要一個(gè)波特率發(fā)生器就可以了。
        系統(tǒng)提供的時(shí)鐘頻率為10 MHz,數(shù)據(jù)信號(hào)的傳輸速率為115 200 Hz,波特率發(fā)生器產(chǎn)生的時(shí)鐘對(duì)數(shù)據(jù)信號(hào)進(jìn)行采樣,設(shè)定對(duì)傳輸?shù)臄?shù)據(jù)信號(hào)進(jìn)行3倍采樣,則波特率發(fā)生器產(chǎn)生的頻率為:
        3×115 200=345 600 Hz
        那么就可以根據(jù)給定的系統(tǒng)時(shí)鐘和要求的波特率計(jì)算出分頻因子:
        1×107/345 600=28.94
        對(duì)時(shí)鐘進(jìn)行28.94分頻是很難的,因此取整數(shù)30作為分頻因子。盡管這樣會(huì)使得分頻得到的時(shí)鐘會(huì)比所需的345 600 Hz高3.5%,但這樣微小的變化不會(huì)影響實(shí)際電路的工作。其仿真圖如圖3所示。

        本文引用地址:http://www.104case.com/article/189494.htm

        c1.jpg


        1.3 數(shù)據(jù)發(fā)送模塊
        發(fā)送過(guò)程就是把并行總線上的數(shù)據(jù)發(fā)送到總線上。數(shù)據(jù)發(fā)送的過(guò)程可以分為空閑狀態(tài)、加載狀態(tài)、發(fā)送狀態(tài)和發(fā)送完成狀態(tài)。空閑狀態(tài)就是UART內(nèi)核復(fù)位后的空閑狀態(tài),等待加載狀態(tài)。UART進(jìn)入空閑狀態(tài)后,當(dāng)檢測(cè)到發(fā)送控制信號(hào)有效時(shí),就進(jìn)行加載狀態(tài)并開(kāi)始進(jìn)行數(shù)據(jù)的加載。加載狀態(tài)就是發(fā)送模塊按照發(fā)送的順序?qū)⒁l(fā)送的這一幀數(shù)據(jù)加載到移位寄存器內(nèi),將移位寄存器和計(jì)數(shù)器都復(fù)位,使移位寄存器和計(jì)數(shù)器的工作時(shí)鐘為系統(tǒng)時(shí)鐘。當(dāng)計(jì)數(shù)器達(dá)到了計(jì)數(shù)的上限時(shí),它會(huì)產(chǎn)生一個(gè)指示信號(hào)通知UART內(nèi)核進(jìn)入發(fā)送狀態(tài)。UART內(nèi)核狀態(tài)機(jī)進(jìn)入發(fā)送狀態(tài)的同時(shí)要改變相應(yīng)信號(hào),這時(shí)移位寄存器時(shí)鐘必須為波特率時(shí)鐘,最重要的是將輸出信號(hào)送到RS 232的發(fā)送端口TXD上。在發(fā)送狀態(tài),也需要計(jì)數(shù)器的控制,當(dāng)計(jì)數(shù)器達(dá)到了計(jì)數(shù)的上限時(shí),它會(huì)產(chǎn)生一個(gè)信號(hào)通知UART內(nèi)核進(jìn)入發(fā)送完成狀態(tài)。當(dāng)UART內(nèi)核狀態(tài)機(jī)進(jìn)入發(fā)送狀態(tài)后,并產(chǎn)生發(fā)送完成中斷信號(hào)。這樣就可以把數(shù)據(jù)從端口上發(fā)送出去了。發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的狀態(tài)轉(zhuǎn)換圖如圖4所示。
        發(fā)送一幀數(shù)據(jù)的部分程序如下:
        c.JPG
        發(fā)送一幀數(shù)據(jù)的仿真結(jié)果如圖5所示。

        d.JPG

        fpga相關(guān)文章:fpga是什么


        通信相關(guān)文章:通信原理


        數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 南安市| 谷城县| 通榆县| 常德市| 沐川县| 晋城| 定南县| 毕节市| 玉龙| 津南区| 灵石县| 霍州市| 古交市| 新平| 共和县| 剑川县| 会同县| 班玛县| 巫溪县| 合肥市| 玉环县| 邮箱| 丰原市| 息烽县| 宜都市| 莫力| 博兴县| 四平市| 吴旗县| 明溪县| 富蕴县| 杭州市| 会泽县| 万安县| 思茅市| 永善县| 金昌市| 正安县| 昭觉县| 梓潼县| 武鸣县|