適用于單片機(jī)的改進(jìn)型uart通信的方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)通信領(lǐng)域,尤其涉及一種適用于單片機(jī)的改進(jìn)型UART通信的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]通用異步收發(fā)器(UniversalAsynchronous Receiver/Transmitter,UART)是一種被廣泛應(yīng)用的通信設(shè)備的接口,可以實現(xiàn)全雙工的數(shù)據(jù)傳輸方式。標(biāo)準(zhǔn)UART所采用的通信方式為主機(jī)和從機(jī)一對一的通信方式,其通信能力受到了限制。另外,傳統(tǒng)的主從式的多機(jī)通信系統(tǒng),尤其是由單臺主機(jī)和由多臺單片機(jī)從機(jī)構(gòu)成的主從式通信系統(tǒng),在主機(jī)與從機(jī)串行通信時,主機(jī)向與其總線連接的各臺從機(jī)發(fā)送信息。主機(jī)先發(fā)送信息的地址幀,隨后發(fā)送信息的數(shù)據(jù)幀。每臺從機(jī)均產(chǎn)生中斷用于接收主機(jī)發(fā)送的地址幀信息,將收到的地址幀內(nèi)容與自己的地址相比較,只有地址匹配時才會接收相應(yīng)的數(shù)據(jù)幀。這樣,主機(jī)每發(fā)送一次信息而傳輸?shù)刂穾瑫r,所有從機(jī)不管該地址幀是否與自己的地址相匹配都會產(chǎn)生中斷,而實際上能夠與主機(jī)地址相匹配的地址只有一個。這樣既增加了單片機(jī)功耗,又大大降低了數(shù)據(jù)處理效率。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)存在的各種缺陷,本發(fā)明的目的是提出一種能夠有效提高數(shù)據(jù)處理效率,并降低單片機(jī)功耗的方法、裝置及系統(tǒng)。
[0004]為此,根據(jù)本發(fā)明的一個方面,提供了一種適用于單片機(jī)的改進(jìn)型UART通信的方法。該方法包括:
[0005]I)在標(biāo)準(zhǔn)型UART上設(shè)置地址檢測單元;
[0006]2)主機(jī)向與其通信連接的多臺單片機(jī)從機(jī)發(fā)送地址幀和數(shù)據(jù)幀;
[0007]3)從機(jī)通過所述地址檢測單元,將從機(jī)的地址與所述地址幀中的地址進(jìn)行匹配,
[0008]若地址匹配,從機(jī)中斷當(dāng)前的程序,以響應(yīng)主機(jī)并接收所述數(shù)據(jù)幀,
[0009]若地址不匹配,從機(jī)繼續(xù)運行當(dāng)前的程序。
[0010]本發(fā)明所述方法中的主機(jī)可以靈活向指定地址的從機(jī)發(fā)送信息,只有地址匹配時,從機(jī)才中斷當(dāng)前的程序,以響應(yīng)主機(jī)并接收其發(fā)送的數(shù)據(jù)幀,有效提高了數(shù)據(jù)處理效率,并降低單片機(jī)功耗。
[0011 ] 在一些實施方式中,所述地址檢測單元還配置為通過預(yù)設(shè)地址掩碼寄存器所對應(yīng)的從機(jī)地址寄存器中各位是否參與地址檢測進(jìn)行地址匹配。
[0012]本實施方式通過從機(jī)地址寄存器和地址掩碼寄存器相互配合,以實現(xiàn)地址檢測,過濾無效地址。此種設(shè)計方式簡單、方便且可靠性高。
[0013]本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明還可以添加其它類型的功能單元,或者增加或者減少寄存器的數(shù)量,只要能夠達(dá)到地址檢測的功能,這些均屬于本發(fā)明保護(hù)范圍。
[0014]在一些實施方式中,所述方法還包括:幀格式設(shè)置單元,所述幀格式設(shè)置單元配置為通過在標(biāo)準(zhǔn)型UART的幀格式的基礎(chǔ)上,添加一位用于指示地址幀或數(shù)據(jù)幀的幀類型標(biāo)識位,以設(shè)定改進(jìn)型UART的幀格式。
[0015]本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明還可以添加其它類型的幀類型標(biāo)識位,或?qū)愋蜆?biāo)識位的順序和位數(shù)進(jìn)行調(diào)整,這些均屬于本發(fā)明保護(hù)范圍。
[0016]本實施方式通過增加幀類型標(biāo)識位,用于指示地址幀或數(shù)據(jù)幀,與從機(jī)地址寄存器和地址掩碼寄存器相配合,以實現(xiàn)地址檢測。此種設(shè)計方式大大增加了選擇地址的可靠性。
[0017]在一些實施方式中,所述改進(jìn)型UART的幀格式包括:
[0018]起始位,配置為指示幀的開始位;
[0019]幀類型標(biāo)識位,配置為指示地址幀或數(shù)據(jù)幀;
[0020]數(shù)據(jù)位,配置為存放地址或數(shù)據(jù)內(nèi)容;
[0021]校驗位,配置為對所述數(shù)據(jù)位中的數(shù)據(jù)進(jìn)行奇偶校驗;
[0022]停止位,配置為指示地址幀或數(shù)據(jù)幀的結(jié)束位。
[0023]根據(jù)本發(fā)明的另一個方面,提供了一種適用于單片機(jī)的改進(jìn)型UART通信的裝置,包括:標(biāo)準(zhǔn)型UART裝置和設(shè)置于所述標(biāo)準(zhǔn)型UART裝置的地址檢測單元,所述地址檢測單元配置為當(dāng)主機(jī)向從機(jī)發(fā)送地址幀和數(shù)據(jù)幀時,將所述地址幀中的地址與從機(jī)的地址進(jìn)行匹配,若地址匹配,則中斷當(dāng)前的程序,以響應(yīng)主機(jī)并接收所述數(shù)據(jù)幀;
[0024]若地址不匹配,則繼續(xù)運行當(dāng)前的程序。
[0025]在一些實施方式中,所述地址檢測單元,通過預(yù)設(shè)地址掩碼寄存器中各位所對應(yīng)的從機(jī)地址寄存器中各位是否參與地址檢測進(jìn)行地址匹配。
[0026]在一些實施方式中,所述裝置還包括:設(shè)定改進(jìn)型UART的幀格式,所述改進(jìn)型UART的幀格式是通過在標(biāo)準(zhǔn)型UART的幀格式的基礎(chǔ)上,添加一位幀類型標(biāo)識位,用于指示地址幀或數(shù)據(jù)幀。
[0027]在一些實施方式中,所述改進(jìn)型UART的幀格式包括:
[0028]起始位,配置為指示幀的開始位;
[0029]幀類型標(biāo)識位,配置為指示地址幀或數(shù)據(jù)幀;
[0030]數(shù)據(jù)位,配置為存放地址或數(shù)據(jù)內(nèi)容;
[0031]校驗位,配置為對所述數(shù)據(jù)位中的數(shù)據(jù)進(jìn)行奇偶校驗;
[0032]停止位,配置為指示地址幀或數(shù)據(jù)幀的結(jié)束位。
[0033]根據(jù)本發(fā)明的另一個方面,包括主機(jī)、與所述主機(jī)通信連接的多臺單片機(jī)從機(jī)和上述的改進(jìn)型UART通信的裝置。
[0034]本發(fā)明通過增加地址檢測單元,使得主機(jī)可以靈活向指定地址的從機(jī)發(fā)送信息,只有地址匹配時,從機(jī)才中斷當(dāng)前的程序,以響應(yīng)主機(jī)并接收主機(jī)發(fā)送的數(shù)據(jù)幀,能有效提高主機(jī)和從機(jī)的數(shù)據(jù)處理效率,并降低單片機(jī)功耗。
【附圖說明】
[0035]圖1為本發(fā)明一實施方式的用于單片機(jī)的改進(jìn)型UART系統(tǒng)示意圖;
[0036]圖2為本發(fā)明一實施方式的改進(jìn)型UART幀格式構(gòu)成示意圖。
【具體實施方式】
[0037]為便于本發(fā)明的技術(shù)方案和優(yōu)點的理解,以下結(jié)合附圖和具體實施例,對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0038]在一些實施方式中,本發(fā)明在標(biāo)準(zhǔn)型UART的基礎(chǔ)上做出改進(jìn),通過增加地址檢測單元(本實施例中的地址檢測單元包括2個自定義功能寄存器:從機(jī)地址寄存器UARTADDR和地址掩碼寄存器UARTADMSK),以實現(xiàn)地址過濾功能。另外,為區(qū)別地址幀和數(shù)據(jù)幀,以便于地址檢測,還可以對標(biāo)準(zhǔn)UART幀格式做出修改,在標(biāo)準(zhǔn)幀格式的基礎(chǔ)上,添加一位幀類型標(biāo)識位,用于指示地址幀或數(shù)據(jù)幀。若該幀類型標(biāo)識位為1,則指示該幀為地址幀;若其為0,則指示該幀為數(shù)據(jù)幀。
[0039]圖1示意性地顯示了根據(jù)本發(fā)明一實施方式的用于單片機(jī)的改進(jìn)型UART系統(tǒng)。該系統(tǒng)由單臺主機(jī)和多臺單片機(jī)從機(jī)構(gòu)成。
[0040]如圖1所示,該系統(tǒng)是由單臺主機(jī)通過總線與多臺單片從機(jī)構(gòu)成的主從式UART通信系統(tǒng)。該系統(tǒng)中主機(jī)可以靈活地向任何一臺或者多臺從機(jī)發(fā)送信息,只有地址匹配的從機(jī)會產(chǎn)生中斷并向主機(jī)發(fā)送應(yīng)答信息,并接收相應(yīng)的數(shù)據(jù)幀。
[0041]本實施例的具體實現(xiàn)方式為:在標(biāo)準(zhǔn)型UART的基礎(chǔ)上做出改進(jìn),針對單臺主機(jī)和多臺單片機(jī)從機(jī)構(gòu)成的主從式通信系統(tǒng),增加了 2個自定義功能寄存器,以實現(xiàn)地址檢測,和修改UART幀,在標(biāo)準(zhǔn)幀格式的基礎(chǔ)上,添加一位幀類型標(biāo)識位,用于指示地址幀或數(shù)據(jù)幀。
[0042]上述增加的2個自定義功能寄存器分別是:從機(jī)地址寄存器UARTADDR和地址掩碼寄存器UART ADMSK。這2個寄存器均為8位,僅需在單片機(jī)從機(jī)上設(shè)定。從機(jī)地址是否與主機(jī)發(fā)送的地址幀相匹配,由這2個寄存器共同決定。其中,從機(jī)地址寄存器UARTADDR,用于指示該主從式通信系統(tǒng)中的從機(jī)地址。地址掩碼寄存器UARTADMSK,用于結(jié)合UARTADDR指示的從機(jī)地址實現(xiàn)對地址幀的檢測,過濾一些無效地址。
[0043]其中,從機(jī)地址寄存器UARTADDR其地址編號范圍為0x0_0xFF,可選擇其中的任意地址編號作為從機(jī)地址編號。本實施例中規(guī)定地址OxFF為廣播地址,即當(dāng)?shù)刂穾瑑?nèi)容為OxFF時,主機(jī)向所有單片機(jī)從機(jī)發(fā)送消息,此時不論從機(jī)地址掩碼設(shè)為何值,所有單片機(jī)從機(jī)均需要產(chǎn)生中斷來接收主機(jī)發(fā)送的地址幀和數(shù)據(jù)幀。
[0044]例如,這兩個寄存器的設(shè)置方式可以為:
[0045]若地址掩碼寄存器UARTADMSK中某位為I,則從機(jī)地址寄存器UARTADDR中對應(yīng)地址位為相關(guān)位,該相關(guān)位參與地址的匹配檢測;若該相關(guān)位的值與主機(jī)發(fā)送的地址幀的相關(guān)位值相同時,地址匹配成功,產(chǎn)生串行中斷,并執(zhí)行后續(xù)操作;若當(dāng)該相關(guān)位的值與主機(jī)發(fā)送的地址幀的相關(guān)位的值不同時,地址不匹配,則不會產(chǎn)生中斷,避免因多余的操作而降低功耗和數(shù)據(jù)處理效率。
[00