freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的數(shù)據(jù)采集卡(編輯修改稿)

2024-12-16 16:01 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 WHEN 0010 = 發(fā)送第 2 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 南昌航空大學(xué)學(xué)士學(xué)位論文 14 state_tras = state_tras + 0001。 END IF。 WHEN 0011 = 發(fā)送第 3 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 0100 = 發(fā)送第 4 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 0101 = 發(fā)送第 5 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 0110 = 發(fā)送第 6 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 0111 = 發(fā)送第 7 位 南昌航空大學(xué)學(xué)士學(xué)位論文 15 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 1000 = 發(fā)送第 8 位 IF (clkbaud_tras = 39。139。) THEN txd_reg = txd_buf(0)。 txd_buf(6 DOWNTO 0) = txd_buf(7 DOWNTO 1)。 state_tras = state_tras + 0001。 END IF。 WHEN 1001 = 發(fā)送停止位 IF (clkbaud_tras = 39。139。) THEN txd_reg = 39。139。 txd_buf = 01010101。 state_tras=state_tras+0001。 END IF。 when 1111 = IF (clkbaud_tras=39。139。) then state_tras=0000。 trasstart=39。039。 key_entry2=39。039。 end if。 WHEN OTHERS= IF (clkbaud_tras=39。139。) then state_tras=state_tras+0001。 南昌航空大學(xué)學(xué)士學(xué)位論文 16 trasstart=39。139。 END IF。 END CASE。 END IF。 END IF。 END IF。 END PROCESS。 波特率發(fā)生模塊 設(shè)計(jì)的 UART 接收和發(fā)送按照相同的波特率進(jìn)行,波特率可以通過接口模塊的總線接口進(jìn)行設(shè)置。 UART 收發(fā)的每一個(gè)數(shù)據(jù)寬度都是波特率發(fā)生器輸出的時(shí)鐘周期的16 倍,即假定當(dāng)前按照 9600bit/s 進(jìn)行收發(fā),那么波特率發(fā)生器的輸出時(shí)鐘頻率應(yīng)該位 9600*16HZ,目的是為 在接受時(shí)進(jìn)行精確地采樣,以提出異步的串行數(shù)據(jù)。根據(jù)給定的晶振時(shí)鐘和要求的波特率發(fā)生器波特率的分頻系數(shù)。假定提供的外部時(shí)鐘位12MHZ,可以很簡(jiǎn)單的通過總線寫入不同的數(shù)值到波特率發(fā)生器保持寄存器,然后用計(jì)數(shù)器的方式生成所需要的各種波特率,即分頻器,計(jì)算公式為: 12020000/9600*16。如果希望輸出 9600HZ 的波特率,可以得出從總線寫入的數(shù)值為: 0000000001001110; 波特率發(fā)生器的狀態(tài)機(jī)如圖 44所示 。 圖 44 波特率發(fā)生器的狀態(tài)機(jī) 實(shí)現(xiàn)波特率功能的部分 VHDL 程序如下: 空閑 狀態(tài) 配置 完畢 復(fù)位 完畢 計(jì)算時(shí)鐘分頻比 復(fù)位首發(fā)狀態(tài)機(jī) 復(fù)位握手信號(hào)線 位時(shí)鐘計(jì)數(shù)器清零 配置波特率控制寄存器 起始位 南昌航空大學(xué)學(xué)士學(xué)位論文 17 CONSTANT div_par : std_logic_vector(15 DOWNTO 0) := 0000000001001110。 分頻參數(shù),其值由對(duì)應(yīng)的波特率計(jì)算而得,按此參數(shù)分頻的時(shí)鐘頻率是波倍特率的 16 倍,此處值對(duì)應(yīng) 9600 的波特率,即分頻出的時(shí)鐘頻率是 9600*16 PROCESS(clk,rst) BEGIN IF (NOT rst = 39。139。) THEN div_reg = 0000000000000000。 ELSIF(clk39。EVENT AND clk=39。139。)THEN IF (div_reg = div_par 0000000000000001) THEN div_reg = 0000000000000000。 ELSE div_reg = div_reg + 0000000000000001。 END IF。 END IF。 END PROCESS。 PROCESS(clk,rst) 分頻得到 16倍波特率的時(shí)鐘 BEGIN IF (NOT rst = 39。139。) THEN clkbaud8x = 39。039。 ELSIF(clk39。EVENT AND clk=39。139。)THEN IF (div_reg = div_par 0000000000000001) THEN clkbaud8x = NOT clkbaud8x。 END IF。 END IF。 END PROCESS。 UART 接收模塊 在異步串行通信中,需要采取有效的措施來避免錯(cuò)誤的出現(xiàn),在找準(zhǔn)幀頭起始位;選擇比較可靠的采集點(diǎn),確保數(shù)據(jù)判斷的正確。 接收端不斷檢測(cè)線路的狀態(tài),若連續(xù)為 1后又檢測(cè)到一個(gè) 0,就知道發(fā)來一個(gè)新字符,應(yīng)馬上準(zhǔn)備接受。所以只需要每個(gè)時(shí)鐘周期都循環(huán)檢測(cè)數(shù)據(jù)線,當(dāng)發(fā)現(xiàn)數(shù)據(jù)線南昌航空大學(xué)學(xué)士學(xué)位論文 18 為低電平時(shí)就認(rèn)為找到了起始位,顯然這個(gè)時(shí)刻落后于起始位躍變沿的時(shí)間。 要保證異步通信的雙方準(zhǔn)確無(wú)誤的交換信息,必須有效控制采集通信線路上電平信號(hào)的時(shí) 機(jī),根據(jù)時(shí)機(jī)選擇恰當(dāng)?shù)臅r(shí)機(jī)能夠使系統(tǒng)準(zhǔn)確穩(wěn)定。如圖 35 所示的 D 點(diǎn)是每一數(shù)據(jù)位周期的中心點(diǎn),所以一般系統(tǒng)中的 D點(diǎn)是最佳采集時(shí)機(jī)。當(dāng)所用的開發(fā)系統(tǒng)的時(shí)鐘頻率和波特率不匹配就容易產(chǎn)生固定的頻差。采用高穩(wěn)定度的時(shí)鐘可以將誤差縮小,只要流出比較小的余度就可以。因此,稍微靠近 A 點(diǎn)的 B點(diǎn)和 C 點(diǎn)是最佳采集時(shí)期。 采樣過程分析 圖如圖 45所示 。 圖 45 采樣過程分析 在異步串口接受中,幀結(jié)構(gòu)起了至關(guān)重要的作用。如果在數(shù)據(jù) 幀的結(jié)尾第一個(gè)停止位的位置抽取到了低電平,說明發(fā)生了幀錯(cuò)誤。 接受模塊的完成上述功能的 VHDL 語(yǔ)句的有限狀態(tài)機(jī) FSM( finite state machine)流程圖如 46 所示 。 圖 46 接受模塊有限狀態(tài)機(jī) 起始位 數(shù)據(jù) D0 B C D E F 空閑 狀態(tài) 數(shù)據(jù)正 確 停止位確認(rèn) 起始位確認(rèn) 起始位有效 采采樣數(shù)據(jù) 虛假起始位 檢測(cè)到起始位 寄入數(shù)據(jù)存儲(chǔ)器 沒有檢測(cè)到起始位 南昌航空大學(xué)學(xué)士學(xué)位論文 19 程序在偵測(cè)到起始位后,計(jì) 16個(gè)時(shí)鐘周期,便開始接收數(shù)據(jù),移位輸入到 rxd_buf中,最后輸出數(shù)據(jù) seg_data。實(shí)現(xiàn)該功能的部分 VHDL 程序如下: PROCESS(clkbaud8x,rst) 接受 PC 機(jī)的數(shù)據(jù) BEGIN IF (NOT rst =‘ 139。) THEN rxd_reg1 =‘039。 rxd_reg2 =‘039。 rxd_buf = 00000000。 state_rec = 0000。 recstart =‘039。 recstart_tmp =‘039。 ELSE IF(clkbaud8x39。EVENT AND clkbaud8x =‘139。) THEN
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1