[發明專利]用于嵌入式系統的模擬串口方法有效
| 申請號: | 201110396365.7 | 申請日: | 2011-12-02 |
| 公開(公告)號: | CN102521183B | 公開(公告)日: | 2018-01-26 |
| 發明(設計)人: | 楊進 | 申請(專利權)人: | 深圳市科陸電子科技股份有限公司 |
| 主分類號: | G06F13/38 | 分類號: | G06F13/38 |
| 代理公司: | 深圳國新南方知識產權代理有限公司44374 | 代理人: | 曹鎮,崔春 |
| 地址: | 518000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 嵌入式 系統 模擬 串口 方法 | ||
技術領域
本發明涉及一種用于嵌入式系統以使用軟件的方式模擬串口的方法,利用MCU的通用IO引腳及可中斷IO引腳的中斷結合定時器中斷以軟件的方式模擬串口完成數據的接收及發送。
背景技術
在工業領域串口使用及其普遍,很多成熟產品經常會出現由于客戶需求的變化,需要增加某些功能,而這些功能需要用到額外的串口,但是現有的成熟產品又沒有額外的空閑串口,對于這種需求如果采取更換MCU或者增加額外的串口擴展芯片來解決既不經濟又增加額外的研發設計成本。
發明內容
本發明通過利用MCU的IO引腳及定時器中斷模擬串口進行數據的接收和發送,在不更換MCU及增加額外的串口擴展芯片的情況下,增加串口減少產品的研發投入及硬件成本。
為了實現上述目的,本發明的技術方案是通過MCU的可中斷IO引腳、通用IO引腳和定時器模擬串口。在模擬串口接收數據時,MCU的接收引腳中斷觸發啟動采樣定時器,所述采樣定時器的定時間隔根據模擬串口設定的波特率計算得到,定時器啟動后在每個采樣間隔對模擬串口的接收IO的狀態進行采樣,得到當前時刻串口接收的數據流的一個數據位的狀態,當采樣到一個字節的數據位之后停止采樣,根據本周期內的采樣到的數據位拼合成一個字節的數據。模擬串口發送數據時,根據模擬串口波特率設定定時器周期,啟動定時器,每個周期中根據要發送的數據的數據位設定模擬串口發送數據腳的狀態,當一個字節的數據發送完成后停止定時器。
作為具體化,所述模擬串口接收數據的步驟為:
①設置MCU模擬串口的接收引腳的IO為低電平觸發中斷,其中所述接收引腳為可中斷IO引腳;
②當模擬串口接收引腳觸發中斷后根據模擬串口設置的波特率計算出定時器的周期,禁止模擬串口接收引腳的觸發中斷,啟動定時器;
其中,步驟②中所述的定時器周期=1/(模擬串口波特率*2)
③定時器首次觸發中斷后讀取模擬串口的接收引腳的狀態,如果模擬串口接收引腳的狀態為高電平則表示模擬串口接收數據出錯,禁止定時器,回到步驟①;
如果模擬串口接收引腳的狀態為低電平則表示模擬串口接收數據起始位正確,重新設定定時器周期,重新啟動定時器,跳轉到步驟④繼續;
其中,步驟③中所述的定時器周期=1/模擬串口波特率
④定時器觸發中斷后讀取模擬串口的接收引腳的狀態,如果模擬串口接收引腳的狀態為高電平則表示模擬串口接收到一位值為1的數據;
如果模擬串口接收引腳的狀態為低電平則表示模擬串口接收到一位值為0的數據;
保持定時器周期不變,重新啟動定時器;
⑤重復上述步驟④,重復N次后,無校驗位通信跳轉到步驟⑥,有校驗位通信則跳轉到步驟⑦;
其中,N=模擬串口設定的數據位+模擬串口設定的停止位+模擬串口設定的校驗位
⑥把接收到的數據按位拼合成字節存入接收緩沖區,通知上層應用程序已接收到一個字節數據;
⑦統計接收到的數據位的高位的個數和設定的奇偶校驗對比,如果統計出的高位的個數和設定的奇偶校驗一致,則把接收到的數據按位拼合成字節存入接收緩沖區,通知上層應用程序已接收到一個字節數據;如果統計出的高位的個數和設定的奇偶校驗不一致,丟棄本次接收到的數據位;
⑧停止定時器同時禁止定時器中斷,重復步驟①至⑦完成持續數據接收過程。
作為具體化,所述模擬串口發送數據的步驟為:
(1)無數據發送時保持發送引腳為高電平,其中發送引腳為通用IO引腳;
(2)當用戶需要發送數據時,設定定時器周期,置發送引腳為低電平,啟動定時器;
其中,步驟(2)中所述的定時器周期=1/模擬串口波特率
(3)定時器中斷后,根據待發送數據的最低位設定發送引腳的電平把正在發送的數據右移一位;
其中,最低位為1則設置發送引腳保持高電平,最低位為0則設置發送引腳保持低電平
(4)重復步驟(3)直至當前字節發送完成,無校驗發送數據跳轉到步驟(5),有奇偶校驗則跳轉到步驟(6);
(5)置發送引腳為高電平,完成當前字節的發送,跳轉到步驟(1)繼續下個字節的發送;
(6)根據設定的奇偶校驗及步驟(3)~(4)中發送的1的個數設置下面一個定時周期內的發送引腳的電平;
(7)置發送IO為高電平,完成當前字節的發送并保持本次設定的定時器周期為2個以上的周期,跳轉到步驟(1)繼續下個字節的發送。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市科陸電子科技股份有限公司,未經深圳市科陸電子科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110396365.7/2.html,轉載請聲明來源鉆瓜專利網。





