串口硬件設計文檔_第1頁
串口硬件設計文檔_第2頁
串口硬件設計文檔_第3頁
串口硬件設計文檔_第4頁
串口硬件設計文檔_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

#空調(diào)溫控器設計方案版本信息序號版本號修改信息說明修改人時間V1.0設計方案初稿目錄1概述TOC\o"1-5"\h\z\o"CurrentDocument"1.1硬件結(jié)構連接3\o"CurrentDocument"1.2半雙工串行通信數(shù)據(jù)格式31.2.1一次收發(fā)數(shù)據(jù)傳輸格式31.2.2連續(xù)收發(fā)的數(shù)據(jù)傳輸格式3\o"CurrentDocument"1.3MAX3483CSA介紹3\o"CurrentDocument"1.4軟件訪問接口函數(shù)流程圖4\o"CurrentDocument"2?半雙工串行收發(fā)器接口4\o"CurrentDocument"2.1接口設計框圖4\o"CurrentDocument"2.2接口描述5\o"CurrentDocument"2.3接口定義5\o"CurrentDocument"3.控制模塊6\o"CurrentDocument"3.1功能描述6\o"CurrentDocument"3.2內(nèi)部寄存器說明6\o"CurrentDocument"3.3結(jié)構框圖7\o"CurrentDocument"3.4接口定義7\o"CurrentDocument"4?接收模塊8\o"CurrentDocument"4.1功能描述8\o"CurrentDocument"4.2設計框圖84.2.1總體設計框圖84.2.2接收控制邏輯部分9\o"CurrentDocument"4.3接口定義9\o"CurrentDocument"4.4接收時序圖10\o"CurrentDocument"5?發(fā)送模塊10\o"CurrentDocument"5.1功能描述105.2設計框圖105.2.1總體設計框圖105.2.2發(fā)送控制邏輯部分11\o"CurrentDocument"5.3接口定義12\o"CurrentDocument"5.4發(fā)送時序圖12

1概述1.1硬件結(jié)構連接該方案實現(xiàn)nios核中半雙工串行收發(fā)器接口和外接單片機之間的通信,通信線路之間采用MAX3483,傳輸協(xié)議遵照UART半雙工串行收發(fā)通信方式。接口位置如圖1中半雙工串行收發(fā)器接口。圖1硬件結(jié)構連接1.2半雙工串行通信數(shù)據(jù)格式1.2.1一次收發(fā)數(shù)據(jù)傳輸格式1.2.2連續(xù)收發(fā)的數(shù)據(jù)傳輸格式數(shù)據(jù)位停止位起始位起始位07df■01.2.2連續(xù)收發(fā)的數(shù)據(jù)傳輸格式數(shù)據(jù)位停止位起始位起始位07df■07數(shù)據(jù)位停止位空閑位01234567J!K丄jhu■■起始位數(shù)據(jù)位停止位空閑位1.3MAX3483CSA介紹MAX3483CSA采用半雙工通信方式,RO和DI端分別為接收器的輸出和驅(qū)動器的輸入端,與單片機連接時只需分別與單片機的RXD端和TXD相連,/RE和DE端分別為接受和發(fā)送的使能端,/RE為邏輯0時,器件處于接收狀態(tài),當DE為邏輯1時,器件處于發(fā)送狀態(tài)。1.4軟件訪問接口函數(shù)流程圖接收數(shù)據(jù)過程開始向控制寄存器寫0,表示接收數(shù)據(jù)讀狀態(tài)寄存器的值寫到flagreg基flag_reg=6/否接收數(shù)據(jù)過程開始向控制寄存器寫0,表示接收數(shù)據(jù)讀狀態(tài)寄存器的值寫到flagreg基flag_reg=6/否否—?__flag_reg=3——=一接收數(shù)據(jù)否‘二一一數(shù)據(jù)接收完成圖圖2發(fā)送接收數(shù)據(jù)過程半雙工串行收發(fā)器接口2.1接口設計框圖DIDERERO圖DIDERERO圖3半雙工串行收發(fā)器結(jié)構圖2.2接口描述收發(fā)器接口總結(jié)構如圖4所示,在默認和復位情況下收發(fā)器處于發(fā)送狀態(tài)。在發(fā)送狀態(tài),查詢到控制寄存器的值為0并且tr_space為高時,則將DE和/RE清0此時收發(fā)器從發(fā)送狀態(tài)切換到接收狀態(tài)。在接收狀態(tài),查詢到控制寄存器的值為1,并且r_space為高時,則將DE和/RE置1,收發(fā)器從接收狀態(tài)切換到發(fā)送狀態(tài)。發(fā)送狀態(tài)時,在發(fā)送空閑(tr_space為高)期間檢測到發(fā)送數(shù)據(jù)緩沖寄存器有數(shù)據(jù)(tr_buf_empty_ind為低),首先將緩沖器的數(shù)據(jù)搬到移位寄存器,并且給高位加1,低位加0,同時將tr_buf_empty_ind信號置高,接著啟動發(fā)送波特率計數(shù)器,同時將tr_space信號清0,然后每隔16個uart_clk時鐘周期發(fā)送1位數(shù)據(jù),發(fā)送完最后1位數(shù)據(jù)后,再次將tr_space置高,表示發(fā)送空閑。接收狀態(tài)時,首先檢測下降沿,當檢測到下降沿后,將re_space信號清0,同時啟動接收數(shù)據(jù)波特率計數(shù)器,當計數(shù)器加到8時,采樣RO的值,為低,表示此時是一個起始信號,然后每隔16個uart_clk時鐘周期接收1位數(shù)據(jù),當接收到第9位數(shù)據(jù),也就是停止位時,判斷停止位是否正確,若正確則將數(shù)據(jù)寫到接收緩沖寄存器,同時將re_space信號置高,若停止位不正確則給出一個幀出錯指示信號,并放棄數(shù)據(jù)輸出。當把數(shù)據(jù)從移位寄存器寫到接收緩沖寄存器時,將re_buf_full_ind置高,當cpu把數(shù)據(jù)從接收緩沖寄存器讀走,將re_buf_full_ind信號清0。fpga_clk為cpu工作時鐘,頻率為66.66MHZ,uart_clk為串行收發(fā)器接口的采樣時鐘,頻率為串口數(shù)據(jù)傳送波特率的16倍,數(shù)據(jù)傳送的波特率為9600bps。2.3接口定義序號引腳名稱I/O功能描述備注1.rst_nI復位信號,低有效2.fpga_clkIcpu工作時鐘,頻率為66.66MHZ3.nios_csIcpu發(fā)送的片選信號,低有效4.nios_wrIcpu發(fā)送的與使能,低有效5.nios_rdIcpu發(fā)送的讀使能,低有效6.nios_adder[l:0]Icpu訪問接口內(nèi)部寄存器的地址7.nios_data_in[7:0]Icpu向外接單片機中發(fā)送的數(shù)據(jù)8.nios_data_out[7:0]OCpu從外接單片機中接收的數(shù)據(jù)9.ROI串行數(shù)據(jù)接收引腳10./REO接收使能,低有效11.DIO串行數(shù)據(jù)發(fā)送引腳

12.DEO發(fā)送使能,咼有效13.TIO發(fā)送兀成信號,冋有效14RIO接收完成信號,咼有效15fram_errorO幀出錯信號,高有效控制模塊3.1功能描述該模塊主要實現(xiàn)以下功能:?根據(jù)tr_space、re_space和控制寄存器的值改變DE和/RE,實現(xiàn)收發(fā)器狀態(tài)的切換?生成發(fā)送緩沖器寫使能,接收緩沖器讀使能,狀態(tài)寄存器讀使能信號3.2內(nèi)部寄存器說明序號寄存器名稱讀/寫地址寄存器說明備注1.control_reg讀寫00讀與控制奇存器,取低位為讀與判斷位,0,表示發(fā)送,1表示接收。其它位保留。2.uart_state只讀01狀態(tài)寄存器,8位,低3位狀態(tài)標志位,bit0發(fā)送數(shù)據(jù)緩沖寄存器空滿標志位,1為空,0為滿。bitl接收緩沖寄存器空滿標志,1為滿,0為空。bit2幀錯誤指示信號,1表示有錯誤,0表示正確。其它位保留。3.tran_buf_reg只寫10發(fā)送緩沖寄存器,8位,只有緩沖寄存器與使能有效時,cpu才能向該寄存器寫數(shù)據(jù)。4.rece_buf_reg只讀11接收緩沖寄存器,8位,只有接收緩沖奇存器讀使能有效時,cpu才能讀該寄存器。3.3結(jié)構框圖nios_data_outnios_wrnios_addernios_csDEre_spacetrdata_reg_selstate_reg_selredata_reg_seltr_space圖4控制模塊總體框圖rece_buf_regnios_data_outnios_wrnios_addernios_csDEre_spacetrdata_reg_selstate_reg_selredata_reg_seltr_space圖4控制模塊總體框圖rece_buf_reg3.4接口定義序號引腳名稱I/O功能描述備注1.rst_nI復位信號,低有效2.fpga_clkICpu工作時鐘,頻率為66.66mhz,上升沿采樣,占空比為50%。3.uart_clkI分頻后產(chǎn)生的采樣時鐘,頻率為波特率的16倍,上升沿采樣,占空比為50%4.nios_csIcpu發(fā)送的片選信號,低有效5.nios_wrIcpu發(fā)送的與使能,低有效6.nios_rdIcpu發(fā)送的讀使能,低有效7.nios_adder[1:0]Icpu訪問接口內(nèi)部寄存器的地址8.nios_data_in[7:0]Icpu向外接單片機中發(fā)送的數(shù)據(jù)9.nios_data_out[7:0]OCpu從外接單片機中接收的數(shù)據(jù)10./REO接收使能,低有效11.DEO發(fā)送使能,咼有效12.TIO發(fā)送兀成信號,冋有效13.RIO接收完成信號,咼有效14.fram_errorO幀出錯信號,高有效15.tr_spaceI發(fā)送空閑狀態(tài)指示信號,高有效16.trbuf_empty_indI發(fā)送緩沖寄存器數(shù)據(jù)空指示信號,高有效17.trdata_reg_setO發(fā)送緩沖寄存器寫使能信號,高有效18.rece_buf_reg[7:0]I接收緩沖奇存器數(shù)據(jù)輸出

19.rebuf_full_indI接收緩沖寄存器數(shù)據(jù)滿指示信號,好有效20.stopbit_err_indI幀錯誤izhishi信號,咼有效21.re_spaceI接收狀態(tài)空閑指示信號,高有效22.state_reg_selO狀態(tài)寄存器讀使能信號,高有效23.redata_reg_selO接收緩沖寄存器讀使能信號,高有效接收模塊4.1功能描述該部分主要完成以下功能:完成幀起始信號的檢測按照uart協(xié)議正確接收RO上數(shù)據(jù),并且寫到接收緩沖寄存器內(nèi)。當接收數(shù)據(jù)有誤時,發(fā)送錯誤指示信號,等待CPU讀取后,將錯誤指示信號清除。?生成re_space、rebuf_full_ind指示信號4.2設計框圖4.2.1總體設計框圖圖5接收模塊總體框圖圖6中控制邏輯部分為狀態(tài)機,具體狀態(tài)轉(zhuǎn)移如下所講。Uart_rece_begin為檢測到下降沿的指示信號,re_frame_error和re_valid為狀態(tài)機的輸出信號,用fpga_clk時鐘的上升沿分別檢測re_frame_error和re_valid信號的下降沿,檢測到下降沿的時候讓

stopbit_err_ind和rebuf_full_ind分別置1,當cpu把狀態(tài)寄存器的值讀走將stopbit_err_ind信號清0.當cpu把接收緩沖寄存器的數(shù)據(jù)讀走,rebuf_full_ind信號清0。4.2.2接收控制邏輯部分reidlestartrecee_bps_cnt==4'h7&&RO=nuart_rece_begin=0圖reidlestartrecee_bps_cnt==4'h7&&RO=nuart_rece_begin=0圖6接收部分狀態(tài)機re_idle接收空閑狀態(tài);start接收幀起始信號狀態(tài),rece接收數(shù)據(jù)狀態(tài)。復位時處于接收空閑狀態(tài),當檢測到下降沿后進入start狀態(tài),此時啟動接收波特率計數(shù)器,當計數(shù)器計到8時,檢測RO的值,為0,表示幀起始信號,則進入rece接收數(shù)據(jù)狀態(tài)。檢測RO的值,為1,進入空閑狀態(tài)。接收完數(shù)據(jù)后跳到空閑狀態(tài)。在接收空閑狀態(tài)re_space信號為高,其余狀態(tài)信號都為低,即re_space=(re_state==re_idle)。4.3接口定義序號引腳名稱I/O功能描述備注1.fpga_clkICpu工作時鐘,頻率為66.66mhz,上升沿采樣,占空比為50%。2.uart_clkI分頻后產(chǎn)生的采樣時鐘,頻率為波特率的16倍,上升沿采樣,占空比為50%3.ROI串行數(shù)據(jù)接收引腳4./REO接收使能,低有效5.rece_buf_reg[7:0]I接收緩沖奇存器數(shù)據(jù)輸出6.rebuf_full_indI接收緩沖寄存器數(shù)據(jù)滿指示信號,好有效7.stopbit_err_indI幀錯誤izhishi信號,咼有效8.re_spaceI接收狀態(tài)空閑指示信號,高有效9.state_reg_selO狀態(tài)寄存器讀使能信號,高有效10.redata_reg_selO接收緩沖寄存器讀使能信號,高有效4.4接收時序圖ROrestatere_spacerevalidsetfullindrebuffullindredata_reg_sel圖7正確數(shù)據(jù)RE圖ROrestatere_spacerevalidsetfullindrebuffullindredata_reg_sel圖7正確數(shù)據(jù)RE圖8錯誤數(shù)據(jù)發(fā)送模塊5.1功能描述該模塊實現(xiàn)以下功能把數(shù)據(jù)從發(fā)送緩沖寄存器搬到移位寄存器,按照uart協(xié)議,正確發(fā)送數(shù)據(jù)生成tr_space、trbuf_empty_ind指示信號5.2設計框圖5.2.1總體設計框圖

圖7發(fā)送

溫馨提示

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

評論

0/150

提交評論