[發明專利]一種異步串口UART自動波特率調整方法及裝置在審
| 申請號: | 201410593284.X | 申請日: | 2014-10-29 |
| 公開(公告)號: | CN104360974A | 公開(公告)日: | 2015-02-18 |
| 發明(設計)人: | 遲朋;劉精軼 | 申請(專利權)人: | 上海伽利略導航有限公司 |
| 主分類號: | G06F13/38 | 分類號: | G06F13/38 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 201203 上海市張*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 異步 串口 uart 自動 波特率 調整 方法 裝置 | ||
技術領域
本發明涉及波特率調整的技術領域,特別是涉及一種異步串口UART自動波特率調整方法及裝置。
背景技術
UART(Universal?Asynchronous?Receiver/Transmitter,異步串口)常用來傳輸數據、調試數據,執行搬移程序boot。UART的接口為非源同步接口,沒有時鐘信號,因此UART的傳輸波特率需要通信雙方約定一致。
CPU(Central?Processing?Unit,中央處理器)的晶振頻率的初始化配置需要在boot啟動的過程中實現,但是由于boot通常是固化在ROM(Read?Only?Memory,只讀內存),相應的ROM也稱作boot?ROM,因此,該固化后的boot不便于對不同的頻率設備配置不同的波特率設置程序。
目前,可以通過設置專門芯片引腳指示外部晶振頻率,boot讀取該專門芯片引腳的參數并據此配置相應波特率。但是這種方式需要增加額外的芯片引腳,增加額外的開銷。
發明內容
本發明的目的是提供一種異步串口UART自動波特率調整方法及裝置,以實現在原有芯片上進行UART自動波特率調整,不需要增加額外的芯片引腳,節省開銷的目的。
為解決上述技術問題,本發明提供以下技術方案。
一種異步串口UART自動波特率調整方法,包括:
上位機向中央處理器CPU發送具有特定幀格式的預設字符;
所述CPU上電復位,接收所述預設字符,啟動測量模塊依據異步串口UART的工作時鐘對所述預設字符的脈寬進行計數,使配置模塊依據計數值配置相應的串口波特率,得到調整后的波特率,并向所述上位機反饋確認字符;
所述上位機接收所述確認字符在驗證正確后確定完成UART自動波特率調整。
優選的,所述啟動測量模塊依據異步串口UART的工作時鐘對所述預設字符的脈寬進行計數,包括:
所述測量模塊中的異步時鐘域同步處理器CDC?sync通過所述UART的接收數據的引腳RXD接收所述預設字符的數據位上的數據進行同步處理,其中,所述數據為8位二進制數據或十六進制數據;
所述測量模塊中的計數器Counter2在接收復位信號reset或重置信號restart之后,在所述RXD接收所述數據的情況下開始計數,且所述RXD在接收到所述數據的脈寬為上升沿時計數加一,并生成計數使能信號en發送至所述測量模塊中的計數器Counter1,在所述RXD接收完畢所述數據的情況下,停止計數和向所述測量模塊中的計數器Counter1發送所述計數使能信號en,并得到計數值n;
所述Counter1在復位或重置之后,依據所述UART輸入的工作時鐘信號uart_clk,對在接收到所述計數使能信號en的情況下接收所述數據的uart_clk周期數進行計數,并在結束計數時得到計數值cnt及準備信號ready。
優選的,所述使配置模塊依據計數值配置相應的串口波特率,得到調整后的波特率,包括:
所述配置模塊在檢測到所述準備信號ready的情況下,獲取計數值cnt和計數值n,依據fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到調整后的波特率fbaud;其中,div=cnt*16/n。
優選的,所述具有特定幀格式的預設字符包括1個起始位,8個數據位,1個偶校驗位和1個停止位。
優選的,當所述預設字符中的8個數據位上的數據為0x55時,所述測量模塊中的計數器Counter2在接收復位信號reset或重置信號restart之后,在所述RXD接收所述數據的情況下開始計數,且在所述RXD接收到所述數據的脈寬為上升沿時計數加一,并生成計數使能信號en發送至所述測量模塊中的計數器Counter1,在所述RXD接收完畢所述數據的情況下,停止計數和向所述測量模塊中的計數器Counter1發送所述計數使能信號en,并得到計數值n,包括:
在接收所述復位信號reset或重置信號restart之后進行復位或重置;
在所述RXD接收到所述數據0x55的脈寬為上升沿時計數加一,并生成計數使能信號en發送至所述測量模塊中的計數器Counter1;其中,所述數據0x55的脈寬上升沿共有5個;
在所述RXD接收到所述數據0x55的脈寬的5個上升沿后,停止計數和向所述測量模塊中的計數器Counter1發送所述計數使能信號en,并得到計數值n為5。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海伽利略導航有限公司,未經上海伽利略導航有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410593284.X/2.html,轉載請聲明來源鉆瓜專利網。





