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

雙串口同時通信的方法

文檔序號:7869333閱讀:782來源:國知局
專利名稱:雙串口同時通信的方法
技術(shù)領(lǐng)域
本發(fā)明涉及串口通信技術(shù),尤其涉及一種雙串口同時通信的方法。
背景技術(shù)
串口通信用于MCU與MCU以及MCU與外設(shè)之間的數(shù)據(jù)傳送,被廣泛應用于工業(yè)通信領(lǐng)域。所謂串口通信是指通過數(shù)據(jù)信號線、底線、控制線等,按位進行傳輸數(shù)據(jù)的一種通信方式。這種通信方式使用的數(shù)據(jù)線少,在遠距離通信中可以節(jié)約通信成本。其中,RS-232串口通信方式因其具有規(guī)范的國際標準,而被人們廣泛接受并使用,并且已經(jīng)成為具有串口通信功能設(shè)備之間的標準接口。
工業(yè)通信技術(shù)已成為現(xiàn)代自動化技術(shù)領(lǐng)域發(fā)展最為活躍的一個分支了,各種新的技術(shù)、協(xié)議、標準、產(chǎn)品、應用層出不窮,雙串口通信技術(shù)就是應用于工業(yè)通信領(lǐng)域的一項新的技術(shù)。而大多數(shù)MCU中只有一個全雙工串行口,不能滿足多MCU應用的需求,也不能充分利用MCU的處理效率,存在如下缺陷傳輸速度慢,效率低,這是串口通信的最大缺陷,如果改成并行通信,則成本會增加,而且距離很短,如果改用USB,則成本增加更大;如果串口線壞了,MCU就沒法與另外一個MCU或外設(shè)正常通信;如果串口間通信突然中斷了,沒法判斷是MCU停止工作了還是因為串口通信阻塞。

發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的問題,本發(fā)明提供了一種雙串口同時通信的方法,該方法在串口通信技術(shù)和MIPI接口(Mobile Industry Processor Interface,移動產(chǎn)業(yè)處理器接口)基礎(chǔ)上實現(xiàn)雙串口的同時通信,并可根據(jù)串口的通信情況在兩個串口之間實現(xiàn)數(shù)據(jù)傳輸?shù)臒o縫隙切換,大大提高串口的通信速度和CPU的使用效率。本發(fā)明通過實施以下技術(shù)方案實現(xiàn)發(fā)明目的一種雙串口同時通信的方法,包括以下步驟
A)將第一MCU的第一串口、第二串口分別與第二 MCU或外設(shè)的第一串口、第二串口連
接;
B)當有數(shù)據(jù)需要發(fā)送時,數(shù)據(jù)請求發(fā)送方檢測第一串口、第二串口的工作狀態(tài);
C)根據(jù)檢測結(jié)果,數(shù)據(jù)請求發(fā)送方通過有空的串口發(fā)送數(shù)據(jù)請求;
D)數(shù)據(jù)接收方接收并處理收到的數(shù)據(jù)請求。作為本發(fā)明的進一步改進,所述步驟C包括以下分步驟
Cl)獲取請求發(fā)送的數(shù)據(jù);
C2)判斷是否將該數(shù)據(jù)寫入第一串口,若是,執(zhí)行步驟C3 ;否則,執(zhí)行步驟C4 ;
C3)將該數(shù)據(jù)寫入與該串口對應的緩存區(qū);
C4)判斷是否將該數(shù)據(jù)寫入第二串口,若是,執(zhí)行步驟C3 ;否則,執(zhí)行步驟C5 ;
C5)數(shù)據(jù)請求結(jié)束。作為本發(fā)明的進一步改進,所述步驟D包括以下分步驟Dl)檢測第一串口、第二串口,當收到DMA中斷時,執(zhí)行步驟D2 ;
D2)讀取收到的DMA源地址數(shù)據(jù);
D3)判斷該DMA數(shù)據(jù)是否為第一串口接收到的數(shù)據(jù),若是,執(zhí)行步驟D4;否則,執(zhí)行步驟
D5 ;
D4)接收并處理數(shù)據(jù)請求;
D5)判斷該DMA數(shù)據(jù)是否為第二串口接收到的數(shù)據(jù),若是,執(zhí)行步驟D4;否則,執(zhí)行步驟
D6 ;
D6)數(shù)據(jù)請求結(jié)束。作為本發(fā)明的進一步改進,所述步驟D4包括以下分步驟
D4-1)檢測第一串口、第二串口的通信狀態(tài),并判斷是否出現(xiàn)通信中斷,若是,執(zhí)行步驟D4-2 ;否則,執(zhí)行步驟D4-8 ;
D4-2)判斷第一串口是否有效,若是,執(zhí)行步驟D4-3 ;否則,執(zhí)行步驟D4-5 ;
D4-3)將該數(shù)據(jù)寫入第一串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;
D4-4)判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,若是,執(zhí)行步驟D4-3 ;否則,執(zhí)行步驟D4-5 ;
D4-5)將該數(shù)據(jù)寫入第二串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;
D4-6)判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,若是,執(zhí)行步驟D4-5 ;否則,執(zhí)行步驟D7 ;
D4-7)通信終止;
D4-8)繼續(xù)接收DMA數(shù)據(jù)。作為本發(fā)明的進一步改進,所述第一串口或第二串口為MIPI接口,所述MIPI接口包括數(shù)據(jù)線和標志線;所述數(shù)據(jù)線用作RXD,用于數(shù)據(jù)的接收;所述標志線用作TXD,用于數(shù)據(jù)的發(fā)送。本發(fā)明的有益效果是兩個串口可以同時進行數(shù)據(jù)通信,相互獨立,并且兩個串口的通信協(xié)議一致,都支持RS232,將串口的速度和效率都提高了一倍,也將CPU的使用率提高了一倍;而且雙串口通信也大大的提高了通信的穩(wěn)定性,當一個串口壞了可以無縫隙的切換到另一串口繼續(xù)通信;此外雙串口通信也有助于提高產(chǎn)品的測試效率,縮短了產(chǎn)品的開發(fā)周期。


圖1是本發(fā)明實施例中一種雙串口通信的方法的流程圖2是本發(fā)明實施例中第一串口、第二串口發(fā)送數(shù)據(jù)的流程圖3是本發(fā)明實施例中第一串口、第二串口接收數(shù)據(jù)的流程圖4是本發(fā)明實施例中的接收并處理數(shù)據(jù)請求流程圖5是本發(fā)明串口的通信原理圖6是本發(fā)明實施例中的雙串口通信原理圖。
具體實施例方式下面結(jié)合

具體實施方式
對本發(fā)明進一步說明。
在本發(fā)明雙串口同時通信的方法的實施例中,該方法的流程圖如圖1所示,該方法包括如下步驟
步驟Sll將第一 MCU的第一串口、第二串口分別與第二 MCU或外設(shè)的第一串口、第二串口連接本步驟中,將第一MCU的第一串口、第二串口分別與第二 MCU或外設(shè)的第一串口、第二串口連接,讓第一串口、第二串口可同時進行通信;
步驟S12當有數(shù)據(jù)需要發(fā)送時,數(shù)據(jù)請求發(fā)送方檢測第一串口、第二串口的工作狀態(tài)當有數(shù)據(jù)需要發(fā)送時,數(shù)據(jù)請求發(fā)送方(第一 MCU或第二 MCU或外設(shè))檢測其第一串口、第二串口的工作狀態(tài)(有空或通信中);
步驟S13根據(jù)檢測結(jié)果,數(shù)據(jù)請求發(fā)送方通過有空的串口發(fā)送數(shù)據(jù)請求數(shù)據(jù)請求方通過有空的串口(第一串口或第二串口)向數(shù)據(jù)接收方發(fā)送數(shù)據(jù)請求,具體處理流程如圖2所示;
步驟S14數(shù)據(jù)接收方接收并處理收到的數(shù)據(jù)請求數(shù)據(jù)接收方接收并處理數(shù)據(jù)發(fā)送方發(fā)來的數(shù)據(jù)請求,具體處理流程如圖3所示。對于本實施例而言,上述步驟S13具體流程圖如圖2所示,包括以下分步驟
步驟S301獲取請求發(fā)送的數(shù)據(jù)獲取所要請求發(fā)送的數(shù)據(jù);
步驟S302判斷是否將該數(shù)據(jù)寫入第一串口 本步驟中,判斷是否將該數(shù)據(jù)寫入第一串口,如果判斷的結(jié)果為是,即第一串口處于空閑狀態(tài),執(zhí)行步驟S303 ;否則,執(zhí)行步驟S304 ;步驟S303將該數(shù)據(jù)寫入與該串口對應的緩存區(qū)將所要請求發(fā)送的數(shù)據(jù)寫入與該串口對應的緩存區(qū),完成數(shù)據(jù)的發(fā)送;
步驟S304判斷是否將該數(shù)據(jù)寫入第二串口 本步驟中,判斷是否將該數(shù)據(jù)寫入第二串口,如果判斷的結(jié)果為是,即第二串口處于空閑狀態(tài),執(zhí)行步驟S303 ;否則,執(zhí)行步驟S305 ;步驟S305數(shù)據(jù)請求結(jié)束結(jié)束本次的數(shù)據(jù)請求。當數(shù)據(jù)在傳輸過程當中,又有數(shù)據(jù)需要請求發(fā)送時,通過檢測判斷數(shù)據(jù)請求發(fā)送方串口的工作狀態(tài),并利用有空的串口(第一串口或第二串口)發(fā)送數(shù)據(jù),可使兩個串口同時進行通信,可有效提高串口的傳輸效率,也可避免出現(xiàn)串口之間的沖突。在實際應用當中,當?shù)谝?MCU與第二 MCU或外設(shè)之間進行大量的數(shù)據(jù)傳輸時,通過檢測第一串口和第二串口的通信狀態(tài),合理利用兩個串口的傳輸能力,可大大提高數(shù)據(jù)的傳輸速度和串口的利用率。對于本實施例而言,上述步驟S14具體流程圖如圖3所示,包括以下分步驟
步驟S401檢測第一串口、第二串口,當收到DMA (Direct Memory Access,直接內(nèi)存存
取)中斷時,執(zhí)行步驟S402 ;
步驟S402讀取收到的DMA源地址數(shù)據(jù)讀取收到的DMA源地址數(shù)據(jù);
步驟S403判斷該DMA數(shù)據(jù)是否為第一串口接收到的數(shù)據(jù)本步驟中,判斷該DMA數(shù)據(jù)是否為第一串口接收到的數(shù)據(jù),如果判斷的結(jié)果為是,即數(shù)據(jù)請求發(fā)送方通過第一串口向數(shù)據(jù)接收方發(fā)送DMA中斷,執(zhí)行步驟S404 ;否則,執(zhí)行步驟S405 ;
步驟S404接收并處理數(shù)據(jù)請求將接收到的數(shù)據(jù)通過相應的串口在第一 MCU與第二MCU或外設(shè)之間進行DMA數(shù)據(jù)傳輸;而DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場和恢復現(xiàn)場的過程,只需在開始時提供要傳送的數(shù)據(jù)的起始位置和數(shù)據(jù)長度,通過硬件為RAM (random access memory,隨機存儲器)與I/O設(shè)備開辟一條直接傳送數(shù)據(jù)的通路,使CPU的效率大為提高;
步驟S405判斷該DMA數(shù)據(jù)是否為第二串口接收到的數(shù)據(jù)本步驟中,判斷該DMA數(shù)據(jù)是否為第二串口接收到的數(shù)據(jù),如果判斷的結(jié)果為是,即數(shù)據(jù)請求發(fā)送方通過第二串口向數(shù)據(jù)接收方發(fā)送DMA中斷,執(zhí)行步驟S404 ;否則,執(zhí)行步驟S406 ;
步驟S406數(shù)據(jù)請求結(jié)束結(jié)束本次的數(shù)據(jù)請求。對于本實施例而言,上述步驟S404具體流程圖如圖4所示,包括以下分步驟步驟S404-1檢測第一串口、第二串口的通信狀態(tài),并判斷是否出現(xiàn)通信中斷本步驟
中,檢測第一串口、第二串口的通信狀態(tài),并判斷是否出現(xiàn)通信中斷,如果判斷的結(jié)果為是,即數(shù)據(jù)在傳輸過程中突然出現(xiàn)中斷,執(zhí)行步驟S404-2 ;否則,執(zhí)行步驟S404-8 ;
步驟S404-2判斷第一串口是否有效本步驟中,判斷第一串口是否有效,如果判斷的 結(jié)果為是,執(zhí)行步驟S404-3 ;否則,執(zhí)行步驟S404-5 ;
步驟S404-3將該數(shù)據(jù)寫入第一串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;
步驟S404-4判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應本步驟中,判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,如果判斷的結(jié)果為是,說明第一串口正常,繼續(xù)通過第一串口進行通信,執(zhí)行步驟S404-3 ;否則,執(zhí)行步驟S404-5 ;
步驟S404-5將該數(shù)據(jù)寫入第二串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;
步驟S404-6判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應本步驟中,判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,如果判斷的結(jié)果為是,說明第二串口正常,繼續(xù)通過第二串口進行通信,執(zhí)行步驟S404-5 ;否則,說明第一串口和第二串口都無法通信,是軟件終止,執(zhí)行步驟S407 ;
步驟S404-7通信終止終止本次的通信;
步驟S404-8繼續(xù)接收DMA數(shù)據(jù)繼續(xù)接收DMA數(shù)據(jù)。在傳輸數(shù)據(jù)的過程當中,如果一個串口突然壞掉了,本發(fā)明可以將數(shù)據(jù)傳輸無縫隙的切換到另一個串口進行傳輸首先,在往某一串口寫數(shù)據(jù)時要先查詢該串口是否有效,如果無效則直接向另一串口發(fā)送該數(shù)據(jù)請求;如果有效,則向該串口發(fā)送數(shù)據(jù)請求,并增加一個定時器,如果數(shù)據(jù)發(fā)送請求方在設(shè)定的時間內(nèi)沒有收到數(shù)據(jù)響應,表明對方?jīng)]有收到數(shù)據(jù),此時也直接向另外一串口發(fā)送該數(shù)據(jù)請求。當然,在數(shù)據(jù)傳輸過程當中,如果串口通信突然中斷,也可通過本發(fā)明的方法和發(fā)送AT命令來判斷究竟是軟件終止還是串口壞了 首先通過切換到另外一個串口進行通信,如果能通信,說明是出現(xiàn)通信中斷的串口壞了,軟件系統(tǒng)是正常的;此時再通過發(fā)送AT命令去查詢壞串口的一些參數(shù),進一步判斷該串口哪個部分損壞了 ;如果切換到另外一個串口也不能通信,說明是軟件終止,串口沒有問題(在實際應用當中出現(xiàn)兩個串口同時損壞的可能性非常小,可以忽略)。圖5為串口的原理圖,其中,
數(shù)據(jù)
TXD:串口數(shù)據(jù)輸出(Transmit Data)
RXD :串口數(shù)據(jù)輸入(Receive Data)
握手
RTS :發(fā)送數(shù)據(jù)請求(Request to Send)CTS :清除發(fā)送(Clear to Send)
DSR :數(shù)據(jù)發(fā)送就緒(Data Send Ready)
DO):數(shù)據(jù)載波檢測(Data Carrier Detect)
DTR :數(shù)據(jù)終端就緒(Data Terminal Ready)
地線
GND :地線
其他
R1:鈴聲指示
如圖6所示,所述第一串口或第二串口為MIPI接口,所述MIPI接口包括數(shù)據(jù)線(MIPI_HSI_RX_DATA)和標志線(MIPI_HSI_RX_FLG);所述數(shù)據(jù)線用作RXD,用于數(shù)據(jù)的接收;所述標志線用作TXD,用于數(shù)據(jù)的發(fā)送。在實際應用當中,當?shù)谝淮谶M行大量數(shù)據(jù)(如網(wǎng)絡(luò)數(shù)據(jù))傳輸時,此時不能及時響應AT命令請求,則可以通過第二串口及時響應AT命令請求。另外,當?shù)谝淮谠谶M行大量數(shù)據(jù)傳輸時,通過第二串口上報數(shù)據(jù)傳輸?shù)臓顟B(tài)和傳輸?shù)倪M度,即通過第二串口打印出的數(shù)據(jù)長度就可以判斷第一串口接收的數(shù)據(jù)是否正常。根據(jù)應用需要,本發(fā)明可應用于第一串口用來發(fā)送請求,第二串口用來響應請求,這種數(shù)據(jù)業(yè)務可被廣泛應用于如PLC控制、門禁、醫(yī)療、測量儀器、LED信息顯示設(shè)備等工業(yè)信息設(shè)備。本發(fā)明的兩個串口可以同時進行數(shù)據(jù)通信,相互獨立,并且兩個串口的通信協(xié)議一致,都支持RS232,將串口的速度和效率都提高了一倍,也將CPU的使用率提高了一倍;而且雙串口通信也大大的提高了通信的穩(wěn)定性,當一個串口壞了可以無縫隙的切換到另一串口繼續(xù)通信;此外雙串口通信也有助于提高產(chǎn)品的測試效率,縮短了產(chǎn)品的開發(fā)周期。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種雙串口同時通信的方法,其特征在于,包括以下步驟A)將第一MCU的第一串口、第二串口分別與第二 MCU或外設(shè)的第一串口、第二串口連接;B)當有數(shù)據(jù)需要發(fā)送時,數(shù)據(jù)請求發(fā)送方檢測第一串口、第二串口的工作狀態(tài);C)根據(jù)檢測結(jié)果,數(shù)據(jù)請求發(fā)送方通過有空的串口發(fā)送數(shù)據(jù)請求;D)數(shù)據(jù)接收方接收并處理收到的數(shù)據(jù)請求。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟C包括以下分步驟Cl)獲取請求發(fā)送的數(shù)據(jù);C2)判斷是否將該數(shù)據(jù)寫入第一串口,若是,執(zhí)行步驟C3 ;否則,執(zhí)行步驟C4 ;C3)將該數(shù)據(jù)寫入與該串口對應的緩存區(qū);C4)判斷是否將該數(shù)據(jù)寫入第二串口,若是,執(zhí)行步驟C3 ;否則,執(zhí)行步驟C5 ;C5)數(shù)據(jù)請求結(jié)束。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述步驟D包括以下分步驟Dl)檢測第一串口、第二串口,當收到DMA中斷時,執(zhí)行步驟D2 ;D2)讀取收到的DMA源地址數(shù)據(jù);D3)判斷該DMA數(shù)據(jù)是否為第一串口接收到的數(shù)據(jù),若是,執(zhí)行步驟D4;否則,執(zhí)行步驟D5 ;D4)接收并處理數(shù)據(jù)請求;D5)判斷該DMA數(shù)據(jù)是否為第二串口接收到的數(shù)據(jù),若是,執(zhí)行步驟D4;否則,執(zhí)行步驟D6 ;D6)數(shù)據(jù)請求結(jié)束。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述步驟D4包括以下分步驟D4-1)檢測第一串口、第二串口的通信狀態(tài),并判斷是否出現(xiàn)通信中斷,若是,執(zhí)行步驟D4-2 ;否則,執(zhí)行步驟D4-8 ;D4-2)判斷第一串口是否有效,若是,執(zhí)行步驟D4-3 ;否則,執(zhí)行步驟D4-5 ;D4-3)將該數(shù)據(jù)寫入第一串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;D4-4)判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,若是,執(zhí)行步驟D4-3 ;否則,執(zhí)行步驟D4-5 ;D4-5)將該數(shù)據(jù)寫入第二串口,并向數(shù)據(jù)請求發(fā)送方發(fā)送數(shù)據(jù)響應;D4-6)判斷數(shù)據(jù)請求發(fā)送方是否于設(shè)定時間內(nèi)收到數(shù)據(jù)響應,若是,執(zhí)行步驟D4-5;否則,執(zhí)行步驟D7 ;D4-7)通信終止;D4-8)繼續(xù)接收DMA數(shù)據(jù)。
5.根據(jù)權(quán)利要求1至4中任一權(quán)利要求所述的方法,其特征在于所述第一串口或第二串口為MIPI接口,所述MIPI接口包括數(shù)據(jù)線和標志線;所述數(shù)據(jù)線用作RXD,用于數(shù)據(jù)的接收;所述標志線用作TXD,用于數(shù)據(jù)的發(fā)送。
全文摘要
本發(fā)明提供了一種雙串口同時通信的方法,包括以下步驟A)將第一MCU的第一串口、第二串口分別與第二MCU或外設(shè)的第一串口、第二串口連接;B)當有數(shù)據(jù)需要發(fā)送時,數(shù)據(jù)請求發(fā)送方檢測第一串口、第二串口的工作狀態(tài);C)根據(jù)檢測結(jié)果,數(shù)據(jù)請求發(fā)送方通過有空的串口發(fā)送數(shù)據(jù)請求;D)數(shù)據(jù)接收方接收并處理收到的數(shù)據(jù)請求。本發(fā)明的兩個串口可同時進行數(shù)據(jù)通信,相互獨立,且兩個串口的通信協(xié)議一致,將串口的速度和CPU的使用效率都提高了一倍;而且雙串口通信也大大提高了通信的穩(wěn)定性,當一個串口壞了可無縫隙切換到另一串口繼續(xù)通信;此外也有助于提高產(chǎn)品的測試效率。
文檔編號H04L29/10GK103024088SQ20121055437
公開日2013年4月3日 申請日期2012年12月19日 優(yōu)先權(quán)日2012年12月19日
發(fā)明者朱濤, 龍忠友, 舒敏 申請人:深圳市廣和通實業(yè)發(fā)展有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉兴市| 金秀| 驻马店市| 定襄县| 峨山| 石门县| 务川| 汽车| 积石山| 旬邑县| 涪陵区| 永仁县| 霍林郭勒市| 工布江达县| 逊克县| 金坛市| 长顺县| 毕节市| 宣化县| 梅州市| 张家口市| 兴安盟| 长岛县| 克什克腾旗| 铁岭县| 保定市| 进贤县| 靖远县| 元谋县| 甘泉县| 通辽市| 贵南县| 涪陵区| 宣武区| 万荣县| 乡城县| 溆浦县| 云南省| 奇台县| 稻城县| 海原县|