<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 用VHDL語(yǔ)言在CPLD上實(shí)現串行通信

用VHDL語(yǔ)言在CPLD上實(shí)現串行通信

——
作者:張?chǎng)?/span> 時(shí)間:2006-11-13 來(lái)源:今日電子 收藏
引言

隨著(zhù)EDA技術(shù)得發(fā)展,已經(jīng)在許多方面得到了廣泛應用,而是實(shí)現遠程測控的重要手段。本文利用語(yǔ)言在上實(shí)現了,完全可以脫離使用,克服了的許多缺點(diǎn)。

串口結構及內容

本設計所采用的是異步通信方式,可以規定傳輸的一個(gè)數據是10位,其中最低位為啟動(dòng)位(邏輯0低電平),最高位為停止位(邏輯1高電平),中間8位是數據位。為了方便對數據進(jìn)行正確控制,選取發(fā)送(接受)每位數據用4個(gè)時(shí)鐘周期。為了能夠達到的波特率,例如4800B/s,則需把時(shí)鐘頻率設為 19.2kHz。系統結構如圖1所示:

系統結構圖

圖1

系統原理

首先介紹串行通信發(fā)送器的工作原理。6位計數器用于判斷發(fā)送的數據是否發(fā)送完畢及在發(fā)送完畢后裝入新的數據,其語(yǔ)言程序如下:

   

由于本設計中選取一位數據4個(gè)時(shí)鐘周期,因此當計數到“100111”時(shí),表示10位數據發(fā)送完畢;此時(shí)將加載信號“l(fā)oad”置1,則向移位寄存器加載10位數據。此計數器的時(shí)鐘信號由3位計數器的進(jìn)位信號提供,3位計數器程序為如下:

   

當計數脈沖為3時(shí),計數器清零并發(fā)出進(jìn)位信號“carry”,“carry”既是6位計數器的時(shí)鐘信號,又是移位寄存器的移位脈沖,移位寄存器實(shí)際上在發(fā)送器中是一個(gè)并串轉換器,其程序為如下:

 

當加載信號高有效時(shí),10位數據從外部寄存器中并行載入REG10,載入后在“carry”有效時(shí),即每4個(gè)CLK周期右移一位進(jìn)入鎖存器,進(jìn)而從TXD發(fā)出。發(fā)送器的仿真波形如圖2所示。

發(fā)送器的仿真波形

圖2

接收器的結構與模塊的功能與發(fā)送器相似。通過(guò)判斷接收鎖存器中的起始位是否為零,來(lái)確定接收與否。若有效時(shí),3位計數器開(kāi)始計數,將鎖存器中的數據逐位右移到移位寄存器中,6位計數器同樣計數到“100111”,此時(shí)表示已接收10位數據,發(fā)出信號把移位寄存器中的數據并行讀出。接收器中的移位寄存器其實(shí)是一個(gè)串并轉換器。

結論

以上就是串行通信的基本結構和原理,在工程中可能對波特率的要求不同??梢岳?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/CPLD">CPLD的在線(xiàn)可編程功能,通過(guò)修改發(fā)送(接收)每一位的時(shí)間來(lái)控制波特率,比如把一位數據每4個(gè)CLK改為2個(gè)CLK,則在時(shí)鐘頻率19.2kHz時(shí),波特率為9600bps。除此之外,還可以通過(guò)增加時(shí)鐘頻率來(lái)增大波特率。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>