專利名稱:帶有波特率檢測設(shè)置功能的uart裝置及其檢測設(shè)置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,并且特別地,涉及一種帶有波特率檢測設(shè)置功能的UART裝置及通訊設(shè)備波特率檢測設(shè)置方法。
背景技術(shù):
在工業(yè)控制、電信等控制系統(tǒng)中以及其他一些設(shè)備中,經(jīng)常會使用RS232/422/485等串行通訊接口作為控制臺或監(jiān)控接口,在使用過程中,有時會不知道通訊設(shè)備工作波特率而無法正確設(shè)置系統(tǒng)的工作參數(shù)。每當(dāng)遇到這種情況,常用的方法是找說明書查看或者找設(shè)計人員詢問或者逐個嘗試常用的波特率,這種方法給通訊設(shè)備的使用帶來了很多不便。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種帶有波特率檢測設(shè)置功能的UART裝置及其檢測設(shè)置方法,可以方便快速檢測到未知通訊設(shè)備工作波特率,并進(jìn)行系統(tǒng)工作參數(shù)的設(shè)置,方便通訊設(shè)備的使用。
為實現(xiàn)上述目的,本發(fā)明提供了一種帶有波特率檢測設(shè)置功能的UART裝置,該裝置包括一個可編程邏輯器件,所述可編程邏輯器件中配置了接收/發(fā)送控制寄存器、接收/發(fā)送數(shù)據(jù)寄存器和接收/發(fā)送邏輯單元構(gòu)成通用異步接收/發(fā)送模塊,所述可編程邏輯器件中還配置了波特率檢測控制寄存器、波特率檢測數(shù)據(jù)寄存器和波特率檢測邏輯單元通信波特率檢測模塊,并通過兩個模塊間的通信實現(xiàn)通信波特率的配置;
波特率檢測控制寄存器,用于啟動波特率檢測邏輯單元,并存儲波特率檢測邏輯單元的運行狀態(tài),判斷波特率檢測是否完成;波特率檢測數(shù)據(jù)寄存器,用于存儲波特率檢測邏輯單元檢測到的波特率,
供監(jiān)控計算機(jī)讀取并進(jìn)行通信波特率的設(shè)置;
波特率檢測邏輯單元,用于接收波特率校準(zhǔn)碼,進(jìn)行通信波特率的計算。所述接收/發(fā)送控制寄存器依據(jù)波特率檢測數(shù)據(jù)寄存器中存儲的波特率進(jìn)
行通信波特率的設(shè)置。
所述UART裝置設(shè)于監(jiān)控計算機(jī)的通訊接口中。
本發(fā)明還提供了一種基于帶有波特率檢測設(shè)置功能的UART裝置的通訊設(shè)備波特率檢測設(shè)置方法,該方法包括以下步驟
(1) 對波特率檢測控制寄存器對應(yīng)數(shù)據(jù)位進(jìn)行寫操作,啟動波特率檢測邏輯對通訊設(shè)備波特率進(jìn)行檢測;
(2) 對波特率檢測控制寄存器對應(yīng)數(shù)據(jù)位進(jìn)行讀操作,根據(jù)相應(yīng)的數(shù)據(jù)為判斷檢測是否完成,若沒有完成,則繼續(xù)等待,若完成則執(zhí)行下一步;
(3) 對波特率檢測數(shù)據(jù)寄存器進(jìn)行讀操作,獲得被測通訊設(shè)備波特率;
(4) 對接收/發(fā)送控制寄存器進(jìn)行寫操作,設(shè)置本機(jī)通信波特率。所述波特率檢測控制寄存器中啟動波特率檢測邏輯單元的方法采用監(jiān)控計
算機(jī)與通訊設(shè)備接通觸發(fā)或手動命令觸發(fā)。
所述波特率檢測邏輯檢測波特率的步驟包括
(1) 檢測時間計時器清零,保持計數(shù)器的值設(shè)置為最大;
(2) 計數(shù)器清零;
(3) 判斷是否采集到下降沿,若是則計數(shù)器開始計數(shù);
(4) 判斷是否采集到上升沿,若是則計數(shù)器停止計數(shù);
(5) 比較計數(shù)器的值是否小于保持計數(shù)器的值,若是則將計數(shù)器的值賦值給保持計數(shù)器;
(6) 判斷檢測時間計時器是否到時間,若是則結(jié)束檢測并將保持計數(shù)器的值輸出給波特率檢測數(shù)據(jù)寄存器,否則跳轉(zhuǎn)到步驟(2)。
上述本發(fā)明在原有設(shè)計的基礎(chǔ)上增加了通信波特率檢測模塊,通過與異步通訊模塊的配合實現(xiàn)了通信波特率的配置,實現(xiàn)了與未知波特率的通訊設(shè)備對接時,能方便快速的檢測到該設(shè)備的通信波特率,并對自身通信波特率進(jìn)行設(shè)置,實現(xiàn)正常通信。其波特率自動檢測設(shè)置功能,可以實現(xiàn)與隨機(jī)通訊設(shè)備進(jìn)行波特率匹配,方便快捷的實現(xiàn)數(shù)據(jù)通信,給工作人員帶來了很大方便。
圖1是本發(fā)明的通信波特率自適應(yīng)裝置原理示意圖;圖2是本發(fā)明的通信波特率自適應(yīng)方法流程圖3是本發(fā)明的波特率檢測邏輯工作流程圖。
具體實施例方式
如圖1所示為本實施例的帶有波特率檢測設(shè)置功能的UART裝置,該裝置包括一個可編程邏輯器件,所述可編程邏輯器件中配置了接收/發(fā)送控制寄存器1、接收/發(fā)送數(shù)據(jù)寄存器2和接收/發(fā)送邏輯單元5構(gòu)成通用異步接收/發(fā)送模塊,所述可編程邏輯器件中還配置了波特率檢測控制寄存器3、波特率檢測數(shù)據(jù)寄存器4和波特率檢測邏輯單元6通信波特率檢測模塊,并通過兩個模塊間的通信實現(xiàn)通信波特率的配置;
接收/發(fā)送控制寄存器1,通過計算機(jī)7對該寄存器中的數(shù)據(jù)位進(jìn)行改變,用于控制接收/發(fā)送邏輯單元5是處在接收?;蚴前l(fā)送模式;
接收/發(fā)送數(shù)據(jù)寄存器2,用于存儲需要接收和發(fā)送的數(shù)據(jù);
接收/發(fā)送邏輯單元5,用于接受接收/發(fā)送控制寄存器1的命令,接收通信總線上的數(shù)據(jù),把接收到的數(shù)據(jù)存入接收/發(fā)送數(shù)據(jù)寄存器或?qū)⒔邮?發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)發(fā)送通信總線上;
波特率檢測控制寄存器3,通過計算機(jī)7的對該寄存器相應(yīng)數(shù)據(jù)位進(jìn)行寫操作,啟動波特率檢測邏輯單元6,依據(jù)波特率檢測邏輯單元6的反饋信息保持或
改變該寄存器中的數(shù)據(jù)位,存儲波特率檢測邏輯單元6的運行狀態(tài),供計算機(jī)7讀取相應(yīng)數(shù)據(jù)位,并判斷波特率檢測是否完成;
波特率檢測數(shù)據(jù)寄存器4,用于接收波特率檢測邏輯單元6檢測到的波特率并存儲,供計算機(jī)7讀取該波特率并進(jìn)行通信波特率的設(shè)置;
波特率檢測邏輯單元6,被波特率檢測控制寄存器3相應(yīng)數(shù)據(jù)位觸發(fā)后,接收計算機(jī)7發(fā)送的波特率校準(zhǔn)碼,進(jìn)行通信波特率的計算。
所述接收/發(fā)送控制寄存器1依據(jù)波特率檢測數(shù)據(jù)寄存器4中存儲的波特率進(jìn)行通信波特率的設(shè)置。
所述UART裝置設(shè)于計算機(jī)7的的通訊接口中。
如圖2和圖3所示為本實施例的基于帶有波特率檢測設(shè)置功能的UART裝置的波特率檢測設(shè)置方法,該方法包括以下步驟
(1) 對波特率檢測控制寄存器3對應(yīng)數(shù)據(jù)位進(jìn)行寫操作,啟動波特率檢測邏輯單元6對通訊設(shè)備波特率進(jìn)行檢測;
(2) 對波特率檢測控制寄存器3對應(yīng)數(shù)據(jù)位進(jìn)行讀操作,根據(jù)相應(yīng)的數(shù)據(jù)為判斷檢測是否完成,若沒有完成,則繼續(xù)等待,若完成則執(zhí)行下一步;
(3) 對波特率檢測數(shù)據(jù)寄存器4進(jìn)行讀操作,獲得被測通訊設(shè)備波特率;
(4) 對接收/發(fā)送控制寄存器1進(jìn)行寫操作,設(shè)置本機(jī)通信波特率。波特率檢測控制寄存器3啟動波特率檢測邏輯單元6的方法采用監(jiān)控計算
機(jī)與通訊設(shè)備接通觸發(fā)或手動命令觸發(fā)。
所述波特率檢測邏輯單元6檢測波特率的步驟包括
(1) 檢測時間計時器清零,保持計數(shù)器的值設(shè)置為最大;
(2) 計數(shù)器清零;
(3) 判斷是否采集到下降沿,若是則計數(shù)器開始計數(shù);(4) 判斷是否采集到上升沿,若是則計數(shù)器停止計數(shù);
(5) 比較計數(shù)器的值是否小于保持計數(shù)器的值,若是則將計數(shù)器的值賦值給保持計數(shù)器;
(6) 判斷檢測時間計時器是否到時間,若是則結(jié)束檢測并將保持計數(shù)器的值輸出給波特率檢測數(shù)據(jù)寄存器4,否則跳轉(zhuǎn)到步驟(2)。
權(quán)利要求
1.一種帶有波特率檢測設(shè)置功能的UART裝置,該裝置包括一個可編程邏輯器件,所述可編程邏輯器件中配置了接收/發(fā)送控制寄存器、接收/發(fā)送數(shù)據(jù)寄存器和接收/發(fā)送邏輯單元,其特征在于所述可編程邏輯器件中還配置了波特率檢測控制寄存器、波特率檢測數(shù)據(jù)寄存器和波特率檢測邏輯單元,所述波特率檢測控制寄存器,用于啟動波特率檢測邏輯單元,并存儲波特率檢測邏輯單元的運行狀態(tài),判斷波特率檢測是否完成;波特率檢測數(shù)據(jù)寄存器,用于存儲波特率檢測邏輯單元檢測到的波特率,供主機(jī)讀取并進(jìn)行通信波特率的設(shè)置;波特率檢測邏輯單元,用于接收波特率校準(zhǔn)碼,進(jìn)行通信波特率的計算。
2. 根據(jù)權(quán)利耍求1所述的帶有波特率檢測設(shè)置功能的UART裝置,其特征在于所述接收/發(fā)送控制寄存器依據(jù)波特率檢測數(shù)據(jù)寄存器中存儲的波特率進(jìn)行 通信波特率的設(shè)置。
3. 根據(jù)權(quán)利要求1或2所述的帶有波特率檢測設(shè)置功能的UART裝置,其特征 在于所述UART裝置設(shè)于監(jiān)控計算機(jī)的通訊接口中。
4. 一種基于權(quán)利要求1所述裝置的通訊設(shè)備波特率檢測設(shè)置方法,其特征在于 該方法包括以下步驟(1) 對波特率檢測控制寄存器對應(yīng)數(shù)據(jù)位進(jìn)行寫操作,啟動波特率檢測邏輯對通訊設(shè)備波特率進(jìn)行檢測;(2) 對波特率檢測控制寄存器對應(yīng)數(shù)據(jù)位進(jìn)行讀操作,根據(jù)相應(yīng)的數(shù)據(jù) 為判斷檢測是否完成,若沒有完成,則繼續(xù)等待,若完成則執(zhí)行下一步;(3) 對波特率檢測數(shù)據(jù)寄存器進(jìn)行讀操作,獲得被測通訊設(shè)備波特率;(4) 對接收/發(fā)送控制寄存器進(jìn)行寫操作,設(shè)置本機(jī)通信波特率。
5. 根據(jù)權(quán)利要求4所述的檢測設(shè)置方法,其特征在于所述波特率檢測控制寄 存器中啟動波特率檢測邏輯單元的方法采用監(jiān)控計算機(jī)與通訊設(shè)備接通觸 發(fā)或手動命令觸發(fā)。
6. 根據(jù)權(quán)利要求4所述的檢測設(shè)置方法,其特征在于所述波特率檢測邏輯檢 測波特率的步驟包括(1) 檢測時間計時器清零,保持計數(shù)器的值設(shè)置為最大;(2) 計數(shù)器清零;(3) 判斷是否采集到下降沿,若是則計數(shù)器開始計數(shù);(4) 判斷是否采集到上升沿,若是則計數(shù)器停止計數(shù);(5) 比較計數(shù)器的值是否小于保持計數(shù)器的值,若是則將計數(shù)器的值賦值 給保持計數(shù)器;(6) 判斷檢測時間計時器是否到時間,若是則結(jié)束檢測并將保持計數(shù)器的 值輸出給波特率檢測數(shù)據(jù)寄存器,否則跳轉(zhuǎn)到步驟(2)。
全文摘要
本發(fā)明涉及一種帶有波特率檢測設(shè)置功能的UART裝置及其檢測設(shè)置方法。利用可編程邏輯器件配置了接收/發(fā)送控制寄存器、接收/發(fā)送數(shù)據(jù)寄存器和接收/發(fā)送邏輯單元,并在此基礎(chǔ)上配置了波特率檢測控制寄存器、波特率檢測數(shù)據(jù)寄存器和波特率檢測邏輯單元,構(gòu)成了帶有波特率檢測設(shè)置功能的UART裝置,并進(jìn)行了檢測設(shè)置方法設(shè)計,實現(xiàn)了對未知通訊設(shè)備工作波特率的方便快速檢測及通信波特率的設(shè)置。
文檔編號H04L1/20GK101626288SQ20091006571
公開日2010年1月13日 申請日期2009年8月10日 優(yōu)先權(quán)日2009年8月10日
發(fā)明者劉中海 申請人:中國航空工業(yè)集團(tuán)公司洛陽電光設(shè)備研究所