[發(fā)明專(zhuān)利]用于嵌入式系統(tǒng)的模擬串口方法有效
| 申請(qǐng)?zhí)枺?/td> | 201110396365.7 | 申請(qǐng)日: | 2011-12-02 |
| 公開(kāi)(公告)號(hào): | CN102521183B | 公開(kāi)(公告)日: | 2018-01-26 |
| 發(fā)明(設(shè)計(jì))人: | 楊進(jìn) | 申請(qǐng)(專(zhuān)利權(quán))人: | 深圳市科陸電子科技股份有限公司 |
| 主分類(lèi)號(hào): | G06F13/38 | 分類(lèi)號(hào): | G06F13/38 |
| 代理公司: | 深圳國(guó)新南方知識(shí)產(chǎn)權(quán)代理有限公司44374 | 代理人: | 曹鎮(zhèn),崔春 |
| 地址: | 518000 廣東省*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 嵌入式 系統(tǒng) 模擬 串口 方法 | ||
1.用于嵌入式系統(tǒng)的模擬串口方法,所述方法通過(guò)MCU的可中斷IO引腳、通用IO引腳和定時(shí)器模擬串口,其特征在于,
模擬串口接收數(shù)據(jù)時(shí),MCU的接收引腳中斷觸發(fā)啟動(dòng)采樣定時(shí)器,所述采樣定時(shí)器的定時(shí)間隔根據(jù)模擬串口設(shè)定的波特率計(jì)算得到,定時(shí)器啟動(dòng)后在每個(gè)采樣間隔對(duì)模擬串口的接收IO的狀態(tài)進(jìn)行采樣,得到當(dāng)前時(shí)刻串口接收的數(shù)據(jù)流的一個(gè)數(shù)據(jù)位的狀態(tài),當(dāng)采樣到一個(gè)字節(jié)的數(shù)據(jù)位之后停止采樣,根據(jù)本周期內(nèi)的采樣到的數(shù)據(jù)位拼合成一個(gè)字節(jié)的數(shù)據(jù);
模擬串口發(fā)送數(shù)據(jù)時(shí),根據(jù)模擬串口波特率設(shè)定定時(shí)器周期,啟動(dòng)定時(shí)器,每個(gè)周期中根據(jù)要發(fā)送的數(shù)據(jù)的數(shù)據(jù)位設(shè)定模擬串口發(fā)送數(shù)據(jù)腳的狀態(tài),當(dāng)一個(gè)字節(jié)的數(shù)據(jù)發(fā)送完成后停止定時(shí)器;
所述模擬串口接收數(shù)據(jù)的步驟為:
①設(shè)置MCU模擬串口的接收引腳的IO為低電平觸發(fā)中斷,其中所述接收引腳為可中斷IO引腳;
②當(dāng)模擬串口接收引腳觸發(fā)中斷后根據(jù)模擬串口設(shè)置的波特率計(jì)算出定時(shí)器的周期,禁止模擬串口接收引腳的觸發(fā)中斷,啟動(dòng)定時(shí)器;
其中,步驟②中所述的定時(shí)器周期=1/(模擬串口波特率*2)
③定時(shí)器首次觸發(fā)中斷后讀取模擬串口的接收引腳的狀態(tài),如果模擬串口接收引腳的狀態(tài)為高電平則表示模擬串口接收數(shù)據(jù)出錯(cuò),禁止定時(shí)器,回到步驟①;
如果模擬串口接收引腳的狀態(tài)為低電平則表示模擬串口接收數(shù)據(jù)起始位正確,重新設(shè)定定時(shí)器周期,重新啟動(dòng)定時(shí)器,跳轉(zhuǎn)到步驟④繼續(xù);
其中,步驟③中所述的定時(shí)器周期=1/模擬串口波特率
④定時(shí)器觸發(fā)中斷后讀取模擬串口的接收引腳的狀態(tài),如果模擬串口接收引腳的狀態(tài)為高電平則表示模擬串口接收到一位值為1的數(shù)據(jù);
如果模擬串口接收引腳的狀態(tài)為低電平則表示模擬串口接收到一位值為0的數(shù)據(jù);
保持定時(shí)器周期不變,重新啟動(dòng)定時(shí)器;
⑤重復(fù)上述步驟④,重復(fù)N次后,無(wú)校驗(yàn)位通信跳轉(zhuǎn)到步驟⑥,有校驗(yàn)位通信則跳轉(zhuǎn)到步驟⑦;
其中,N=模擬串口設(shè)定的數(shù)據(jù)位+模擬串口設(shè)定的停止位+模擬串口設(shè)定的校驗(yàn)位
⑥把接收到的數(shù)據(jù)按位拼合成字節(jié)存入接收緩沖區(qū),通知上層應(yīng)用程序已接收到一個(gè)字節(jié)數(shù)據(jù);
⑦統(tǒng)計(jì)接收到的數(shù)據(jù)位的高位的個(gè)數(shù)和設(shè)定的奇偶校驗(yàn)對(duì)比,如果統(tǒng)計(jì)出的高位的個(gè)數(shù)和設(shè)定的奇偶校驗(yàn)一致,則把接收到的數(shù)據(jù)按位拼合成字節(jié)存入接收緩沖區(qū),通知上層應(yīng)用程序已接收到一個(gè)字節(jié)數(shù)據(jù);如果統(tǒng)計(jì)出的高位的個(gè)數(shù)和設(shè)定的奇偶校驗(yàn)不一致,丟棄本次接收到的數(shù)據(jù)位;
⑧停止定時(shí)器同時(shí)禁止定時(shí)器中斷,重復(fù)步驟①至⑦完成持續(xù)數(shù)據(jù)接收過(guò)程;
所述模擬串口發(fā)送數(shù)據(jù)的步驟為:
(1)無(wú)數(shù)據(jù)發(fā)送時(shí)保持發(fā)送引腳為高電平,其中發(fā)送引腳為通用IO引腳;
(2)當(dāng)用戶需要發(fā)送數(shù)據(jù)時(shí),設(shè)定定時(shí)器周期,置發(fā)送引腳為低電平,啟動(dòng)定時(shí)器;
其中,步驟(2)中所述的定時(shí)器周期=1/模擬串口波特率
(3)定時(shí)器中斷后,根據(jù)待發(fā)送數(shù)據(jù)的最低位設(shè)定發(fā)送引腳的電平把正在發(fā)送的數(shù)據(jù)右移一位;
其中,最低位為1則設(shè)置發(fā)送引腳保持高電平,最低位為0則設(shè)置發(fā)送引腳保持低電平
(4)重復(fù)步驟(3)直至當(dāng)前字節(jié)發(fā)送完成,無(wú)校驗(yàn)發(fā)送數(shù)據(jù)跳轉(zhuǎn)到步驟(5),有奇偶校驗(yàn)則跳轉(zhuǎn)到步驟(6);
(5)置發(fā)送引腳為高電平,完成當(dāng)前字節(jié)的發(fā)送,跳轉(zhuǎn)到步驟(1)繼續(xù)下個(gè)字節(jié)的發(fā)送;
(6)根據(jù)設(shè)定的奇偶校驗(yàn)及步驟(3)~(4)中發(fā)送的1的個(gè)數(shù)設(shè)置下面一個(gè)定時(shí)周期內(nèi)的發(fā)送引腳的電平;
(7)置發(fā)送IO為高電平,完成當(dāng)前字節(jié)的發(fā)送并保持本次設(shè)定的定時(shí)器周期為2個(gè)以上的周期,跳轉(zhuǎn)到步驟(1)繼續(xù)下個(gè)字節(jié)的發(fā)送。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于深圳市科陸電子科技股份有限公司,未經(jīng)深圳市科陸電子科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110396365.7/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)





