欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種RS485收發(fā)方向切換方法及裝置與流程

文檔序號(hào):40563016發(fā)布日期:2025-01-03 11:23閱讀:9來源:國知局
一種RS485收發(fā)方向切換方法及裝置與流程

本發(fā)明涉及一種rs485收發(fā)方向切換方法及裝置,屬于通信。


背景技術(shù):

1、rs485是一種半雙工通用異步收發(fā)器,任意時(shí)刻只能處于發(fā)送或接收一種狀態(tài),在對(duì)外發(fā)送數(shù)據(jù)時(shí)需要先將rs485轉(zhuǎn)換為發(fā)送器狀態(tài)才能發(fā)送數(shù)據(jù),接收數(shù)據(jù)時(shí)需要先將rs485轉(zhuǎn)換為接收器狀態(tài)才能接收數(shù)據(jù)。狀態(tài)轉(zhuǎn)換可采用硬件和軟件兩種方式實(shí)現(xiàn),硬件方式會(huì)考慮到硬件的驅(qū)動(dòng)能力和成本控制,某些應(yīng)用場(chǎng)合并不適用硬件方式,而市面上大部分內(nèi)置rs485的產(chǎn)品基本都采用軟件方式,該方式通過軟件控制rs485的方向引腳電平實(shí)現(xiàn)發(fā)送和接收狀態(tài)的轉(zhuǎn)換。

2、軟件上rs485狀態(tài)的轉(zhuǎn)換是通過控制方向引腳電平實(shí)現(xiàn)的,當(dāng)控制方向引腳為高電平時(shí),rs485轉(zhuǎn)換為發(fā)送器狀態(tài),然后延遲一定時(shí)間以保證硬件有足夠的時(shí)間完成切換;當(dāng)發(fā)送完數(shù)據(jù)后也需要延時(shí)以保證數(shù)據(jù)能完整發(fā)送出去,然后拉低控制方向引腳電平將rs485轉(zhuǎn)換為接收器狀態(tài),在實(shí)現(xiàn)rs485狀態(tài)轉(zhuǎn)換時(shí),如果延時(shí)不合理,會(huì)導(dǎo)致數(shù)據(jù)丟包或串口卡頓的問題,影響串口正常通信;還會(huì)頻繁循環(huán)查詢硬件發(fā)送完成標(biāo)志,這樣會(huì)占用大量的cpu處理時(shí)間,導(dǎo)致系統(tǒng)cpu占有率較高,影響操作系統(tǒng)的整體運(yùn)行性能。

3、公布號(hào)為cn112713910a的發(fā)明專利文件公開了一種rs485收發(fā)狀態(tài)的轉(zhuǎn)換方法、系統(tǒng)、設(shè)備及介質(zhì)。該方法基于通過控制rs485為發(fā)送狀態(tài),并啟動(dòng)計(jì)時(shí)器開始計(jì)時(shí),計(jì)時(shí)器的計(jì)時(shí)周期根據(jù)rs485的當(dāng)前波特率計(jì)算得到,當(dāng)計(jì)時(shí)器計(jì)時(shí)結(jié)束時(shí),控制rs485為接收器狀態(tài)。但是rs485的波特率受環(huán)境因素、傳輸距離和電纜質(zhì)量等因素的影響會(huì)導(dǎo)致rs485的波特率不是特別精確,這樣就會(huì)導(dǎo)致該專利方案中的計(jì)時(shí)周期的偏差,從而也會(huì)導(dǎo)致數(shù)據(jù)丟包或串口卡頓的問題,影響串口正常通信。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的是提供一種rs485收發(fā)方向切換方法及裝置,用以解決現(xiàn)有技術(shù)中rs485狀態(tài)轉(zhuǎn)換時(shí),延時(shí)設(shè)置不合理導(dǎo)致的數(shù)據(jù)丟包或串口卡頓,及頻繁循環(huán)查詢硬件發(fā)送完成標(biāo)志導(dǎo)致的系統(tǒng)cpu占有率較高的問題。

2、為實(shí)現(xiàn)上述目的,本發(fā)明的方案包括:

3、本發(fā)明的一種rs485收發(fā)方向切換方法,包括如下步驟:

4、1)數(shù)據(jù)發(fā)送時(shí),調(diào)高數(shù)據(jù)發(fā)送調(diào)用者的優(yōu)先級(jí);將rs485收發(fā)管腳切換到發(fā)送狀態(tài);

5、將數(shù)據(jù)拷貝到緩沖區(qū);

6、2)使能thr發(fā)送保持寄存器空中斷,完成緩沖區(qū)的數(shù)據(jù)發(fā)送;

7、3)查詢硬件是否發(fā)送完成,若所述硬件已發(fā)送完成,則切換所述rs485收發(fā)管腳到接收狀態(tài),恢復(fù)所述數(shù)據(jù)發(fā)送調(diào)用者的優(yōu)先級(jí);若所述硬件沒有發(fā)送完成,則進(jìn)入休眠中斷處理;

8、4)滿足設(shè)定條件后退出所述休眠中斷處理,重復(fù)上述步驟3),直到硬件發(fā)送完成。

9、數(shù)據(jù)發(fā)送時(shí),驅(qū)動(dòng)程序首先將數(shù)據(jù)發(fā)送模塊調(diào)用者的任務(wù)優(yōu)先調(diào)高,以保證后續(xù)休眠等待的及時(shí)喚醒;完成緩沖區(qū)的數(shù)據(jù)發(fā)送后,查詢硬件是否發(fā)送完成,若硬件發(fā)送還沒有完成,則直接進(jìn)行休眠掛起服務(wù);通過休眠模塊來間斷性的查詢硬件是否發(fā)送數(shù)據(jù)完成,可以有效的減少或者避免數(shù)據(jù)的丟包或串口的卡頓,不會(huì)頻繁循環(huán)查詢硬件發(fā)送完成標(biāo)志,從而減少了對(duì)cpu占用的處理時(shí)間,降低了系統(tǒng)cpu占有率,提高了操作系統(tǒng)的整體運(yùn)行性能。

10、進(jìn)一步地,步驟3)中,所述休眠中斷處理是設(shè)置硬件定時(shí)器中斷觸發(fā)時(shí)間,并使能定時(shí)器中斷,掛起任務(wù)等待定時(shí)器中斷事件,若所述定時(shí)器中斷事件到來則被喚醒,從而退出休眠中斷,否則繼續(xù)等待所述定時(shí)器中斷事件的到來;所述定時(shí)器中斷事件是所述硬件定時(shí)器的中斷觸發(fā)時(shí)間到后,禁止定時(shí)器中斷,喚醒所述掛起任務(wù)。

11、進(jìn)一步地,所述步驟2)中使能thr發(fā)送保持寄存器空中斷后,串口中斷處理檢測(cè)到發(fā)送保持寄存器為空時(shí),將串口數(shù)據(jù)緩存區(qū)中數(shù)據(jù)寫入串口控制器進(jìn)行硬件發(fā)送,若緩沖區(qū)的數(shù)據(jù)發(fā)送完成,則禁止thr發(fā)送保持寄存器空中斷,并發(fā)送數(shù)據(jù)緩沖區(qū)空事件,所述發(fā)送數(shù)據(jù)緩沖區(qū)空事件表示完成緩沖區(qū)的數(shù)據(jù)發(fā)送。

12、使用發(fā)送保持寄存器空中斷事件來完成緩沖區(qū)的數(shù)據(jù)發(fā)送,不需要去計(jì)算緩沖區(qū)的數(shù)據(jù)發(fā)送所需要的時(shí)間,只需要等待中斷事件的觸發(fā)即可,方法簡(jiǎn)單有效。

13、進(jìn)一步地,所述查詢硬件包括查詢發(fā)送保持寄存器和發(fā)送移位寄存器。

14、檢查發(fā)送保持寄存器和發(fā)送移位寄存器是否為空,來判斷數(shù)據(jù)是否已真正發(fā)送完成,避免了發(fā)送數(shù)據(jù)的丟包。

15、進(jìn)一步改進(jìn),將所述硬件定時(shí)器的中斷觸發(fā)時(shí)間設(shè)置為微秒級(jí)。

16、將定時(shí)器的中斷時(shí)間間隔設(shè)置為微秒級(jí),可以更為精確的控制查詢硬件發(fā)送數(shù)據(jù)的完成時(shí)間,減少管腳狀態(tài)切換等待的延遲時(shí)間。

17、一種rs485收發(fā)方向切換裝置,包括處理器,所述處理器執(zhí)行如下的方法指令:

18、1)數(shù)據(jù)發(fā)送時(shí),調(diào)高數(shù)據(jù)發(fā)送調(diào)用者的優(yōu)先級(jí);將rs485收發(fā)管腳切換到發(fā)送狀態(tài);

19、將數(shù)據(jù)拷貝到緩沖區(qū);

20、2)使能thr發(fā)送保持寄存器空中斷,完成緩沖區(qū)的數(shù)據(jù)發(fā)送;

21、3)查詢硬件是否發(fā)送完成,若所述硬件已發(fā)送完成,則切換所述rs485收發(fā)管腳到接收狀態(tài),恢復(fù)所述數(shù)據(jù)發(fā)送調(diào)用者的優(yōu)先級(jí);若所述硬件沒有發(fā)送完成,則進(jìn)入休眠中斷處理;

22、4)滿足設(shè)定條件后退出所述休眠中斷處理,重復(fù)上述步驟3),直到硬件發(fā)送完成。

23、進(jìn)一步地,步驟3)中,所述休眠中斷處理是設(shè)置硬件定時(shí)器中斷觸發(fā)時(shí)間,并使能定時(shí)器中斷,掛起任務(wù)等待定時(shí)器中斷事件,若所述定時(shí)器中斷事件到來則被喚醒,從而退出休眠中斷,否則繼續(xù)等待所述定時(shí)器中斷事件的到來;所述定時(shí)器中斷事件是所述硬件定時(shí)器的中斷觸發(fā)時(shí)間到后,禁止定時(shí)器中斷,喚醒所述掛起任務(wù)。

24、進(jìn)一步地,所述步驟2)中使能thr發(fā)送保持寄存器空中斷后,串口中斷處理檢測(cè)到發(fā)送保持寄存器為空時(shí),將串口數(shù)據(jù)緩存區(qū)中數(shù)據(jù)寫入串口控制器進(jìn)行硬件發(fā)送,若緩沖區(qū)的數(shù)據(jù)發(fā)送完成,則禁止thr發(fā)送保持寄存器空中斷,并發(fā)送數(shù)據(jù)緩沖區(qū)空事件,所述發(fā)送數(shù)據(jù)緩沖區(qū)空事件表示完成緩沖區(qū)的數(shù)據(jù)發(fā)送。

25、進(jìn)一步地,所述查詢硬件包括查詢發(fā)送保持寄存器和發(fā)送移位寄存器。

26、進(jìn)一步改進(jìn),將所述硬件定時(shí)器的中斷觸發(fā)時(shí)間設(shè)置為微秒級(jí)。



技術(shù)特征:

1.一種rs485收發(fā)方向切換方法,其特征在于,包括如下步驟:

2.根據(jù)權(quán)利要求1所述的rs485收發(fā)方向切換方法,其特征在于,步驟3)中,所述休眠中斷處理是設(shè)置硬件定時(shí)器中斷觸發(fā)時(shí)間,并使能定時(shí)器中斷,掛起任務(wù)等待定時(shí)器中斷事件,若所述定時(shí)器中斷事件到來則被喚醒,從而退出休眠中斷,否則繼續(xù)等待所述定時(shí)器中斷事件的到來;所述定時(shí)器中斷事件是所述硬件定時(shí)器的中斷觸發(fā)時(shí)間到后,禁止定時(shí)器中斷,喚醒所述掛起任務(wù)。

3.根據(jù)權(quán)利要求1所述的rs485收發(fā)方向切換方法,其特征在于,所述步驟2)中使能thr發(fā)送保持寄存器空中斷后,串口中斷處理檢測(cè)到發(fā)送保持寄存器為空時(shí),將串口數(shù)據(jù)緩存區(qū)中數(shù)據(jù)寫入串口控制器進(jìn)行硬件發(fā)送,若緩沖區(qū)的數(shù)據(jù)發(fā)送完成,則禁止thr發(fā)送保持寄存器空中斷,并發(fā)送數(shù)據(jù)緩沖區(qū)空事件,所述發(fā)送數(shù)據(jù)緩沖區(qū)空事件表示完成緩沖區(qū)的數(shù)據(jù)發(fā)送。

4.根據(jù)權(quán)利要求1所述的rs485收發(fā)方向切換方法,其特征在于,所述查詢硬件包括查詢發(fā)送保持寄存器和發(fā)送移位寄存器。

5.根據(jù)權(quán)利要求2所述的rs485收發(fā)方向切換方法,其特征在于,將所述硬件定時(shí)器的中斷觸發(fā)時(shí)間設(shè)置為微秒級(jí)。

6.一種rs485收發(fā)方向切換裝置,包括處理器,其特征在于,所述處理器執(zhí)行如下的方法指令:

7.根據(jù)權(quán)利要求6所述的rs485收發(fā)方向切換裝置,其特征在于,步驟3)中,所述休眠中斷處理是設(shè)置硬件定時(shí)器中斷觸發(fā)時(shí)間,并使能定時(shí)器中斷,掛起任務(wù)等待定時(shí)器中斷事件,若所述定時(shí)器中斷事件到來則被喚醒,從而退出休眠中斷,否則繼續(xù)等待所述定時(shí)器中斷事件的到來;所述定時(shí)器中斷事件是所述硬件定時(shí)器的中斷觸發(fā)時(shí)間到后,禁止定時(shí)器中斷,喚醒所述掛起任務(wù)。

8.根據(jù)權(quán)利要求6所述的rs485收發(fā)方向切換裝置,其特征在于,所述步驟2)中使能thr發(fā)送保持寄存器空中斷后,串口中斷處理檢測(cè)到發(fā)送保持寄存器為空時(shí),將串口數(shù)據(jù)緩存區(qū)中數(shù)據(jù)寫入串口控制器進(jìn)行硬件發(fā)送,若緩沖區(qū)的數(shù)據(jù)發(fā)送完成,則禁止thr發(fā)送保持寄存器空中斷,并發(fā)送數(shù)據(jù)緩沖區(qū)空事件,所述發(fā)送數(shù)據(jù)緩沖區(qū)空事件表示完成緩沖區(qū)的數(shù)據(jù)發(fā)送。

9.根據(jù)權(quán)利要求6所述的rs485收發(fā)方向切換裝置,其特征在于,所述查詢硬件包括查詢發(fā)送保持寄存器和發(fā)送移位寄存器。

10.根據(jù)權(quán)利要求7所述的rs485收發(fā)方向切換裝置,其特征在于,將所述硬件定時(shí)器的中斷觸發(fā)時(shí)間設(shè)置為微秒級(jí)。


技術(shù)總結(jié)
本發(fā)明涉及一種RS485收發(fā)方向切換方法及裝置,屬于通信技術(shù)領(lǐng)域。本發(fā)明方案包括當(dāng)數(shù)據(jù)發(fā)送時(shí),調(diào)高數(shù)據(jù)發(fā)送調(diào)用者的優(yōu)先級(jí);將RS485收發(fā)管腳切換到發(fā)送狀態(tài);將數(shù)據(jù)拷貝到緩沖區(qū);使能THR發(fā)送保持寄存器空中斷,完成緩沖區(qū)的數(shù)據(jù)發(fā)送;查詢硬件是否發(fā)送完成,若所述硬件已發(fā)送完成,則切換RS485收發(fā)管腳到接收狀態(tài),恢復(fù)高數(shù)據(jù)發(fā)送調(diào)用者的任務(wù)優(yōu)先級(jí);若所述硬件沒有發(fā)送完成,則進(jìn)入休眠中斷處理,若休眠時(shí)間到,則重復(fù)查詢硬件是否發(fā)送完的所有操作,直到硬件發(fā)送完成。本發(fā)明方案解決現(xiàn)有技術(shù)中RS485狀態(tài)轉(zhuǎn)換時(shí),延時(shí)設(shè)置不合理導(dǎo)致的數(shù)據(jù)丟包或串口卡頓,及頻繁循環(huán)查詢硬件發(fā)送完成標(biāo)志導(dǎo)致的系統(tǒng)CPU占有率較高的問題。

技術(shù)研發(fā)人員:尚龍康,李英明,湯洋,宋彥鋒,王佩瑤,邢留洋,信亞磊
受保護(hù)的技術(shù)使用者:許昌許繼軟件技術(shù)有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/2
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德保县| 绥化市| 漯河市| 栾城县| 筠连县| 上栗县| 凤凰县| 通州区| 尼勒克县| 延寿县| 桓仁| 石屏县| 庆城县| 莱芜市| 中宁县| 常熟市| 宜章县| 搜索| 奈曼旗| 徐汇区| 淮南市| 额尔古纳市| 大港区| 乾安县| 兴隆县| 银川市| 贵州省| 华容县| 石楼县| 铜梁县| 江源县| 玉田县| 辽阳县| 溧水县| 扎兰屯市| 武夷山市| 潼南县| 和平区| 孝义市| 安达市| 义马市|