一種嵌入式微處理器的串口擴展裝置制造方法
【專利摘要】本發(fā)明公開了一種嵌入式微處理器的串口擴展裝置,包括微處理器和可編程邏輯器件;微處理器包括M個串口和N個控制端口;可編程邏輯器件包括K個通用輸入輸出端口;其中,K>M>0,N>0;微處理器用于通過N個控制端口設(shè)置所述可編程邏輯器件的端口通信模式;可編程邏輯器件用于對器件內(nèi)部的可編程邏輯電路進行編程,控制可編程邏輯器件上的各個通用輸入輸出端口的通信互連關(guān)系;可編程邏輯器件的各個通用輸入輸出端口用于連接一種或多種外圍設(shè)備,實現(xiàn)外圍設(shè)備與微處理器之間的信號傳輸和/或?qū)崿F(xiàn)外圍設(shè)備之間的信號傳輸。本發(fā)明提供的嵌入式微處理器的串口擴展裝置,端口數(shù)量擴展方便簡單,切換靈活,成本低效率高,可移植性強。
【專利說明】—種嵌入式微處理器的串口擴展裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,尤其涉及一種嵌入式微處理器的串口擴展裝置。
【背景技術(shù)】
[0002]通用串行異步接收/ 發(fā)送接 口(Universal Asynchronous Receiver/Transmitter,簡稱UART),也簡稱串口。串口是一種用于異步通信的通用串行數(shù)據(jù)總線,該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。串口是嵌入式系統(tǒng)設(shè)計中最常用最簡單方便的接口,通常用來與PC (Personal Computer,個人計算機)或者其它外網(wǎng)設(shè)備通信。
[0003]現(xiàn)有的嵌入式微處理器通常具有1-6個串口,數(shù)量非常有限;而嵌入式微處理器作為嵌入式系統(tǒng)的核心,需要與微處理器通信的外圍設(shè)備通常有很多種,甚至遠遠超過微處理器本身具有的串口數(shù)量。例如:在GNSS (Global Navigation Satellite System,全球?qū)Ш叫l(wèi)星系統(tǒng))接收機中,其內(nèi)置的微處理器具有6個串口,而與微處理器通信的外圍設(shè)備包括 GPS (Global Positioning System,全球定位系統(tǒng))主板、GPRS (General Packet RadioService,通用分組無線服務(wù)技術(shù))模塊、藍牙通信模塊、電臺通信模塊、外部PC機等,其中,GPS主板需要占用3個串口,GPRS模塊需要占用I個串口、藍牙通信模塊需要占用I個串口、電臺通信模塊需要占用I個串口,另外還需要2個串口與PC機或者其它外部設(shè)備通信。因此,所有與微處理器通信的外圍設(shè)備總共需要8個串口,而微處理器自身只有6個串口,這就出現(xiàn)微處理器串口數(shù)量不足的問題,因此需要對微處理器的串口數(shù)量進行擴展。
[0004]解決上述問題的常用技術(shù)手段是,利用專用的串口擴展芯片以增加串口數(shù)量;或者,通過數(shù)字電路或模擬開關(guān)對微處理器的串口進行時分復用,使得多個外圍設(shè)備可以分時復用同一個微處理器串口。其中,采用專用的串口擴展芯片擴展出來的串口允許外圍設(shè)備同時工作,而沒有分時復用的問題;但是存在成本高、驅(qū)動程序復雜等缺陷。在運行操作系統(tǒng)的嵌入式設(shè)計中使用專用串口擴展芯片來擴展串口時還需要開發(fā)對應(yīng)的芯片驅(qū)動程序,增加了開發(fā)的難度與復雜性;并且由于驅(qū)動程序與操作系統(tǒng)架構(gòu)自身的問題還可能會出現(xiàn)數(shù)據(jù)丟失。
[0005]此外,外部設(shè)備之間在某些情況下也需要進行相互通信而不經(jīng)過微處理器的轉(zhuǎn)接處理。例如在上述的GNSS接收機中,在某種工作模式下,GPS主板需要與GPRS模塊、藍牙通信模塊、電臺通信模塊、PC機直接通信,實際上并不需要經(jīng)過微處理器的參與,但現(xiàn)有技術(shù)中的各個外圍設(shè)備通過微處理器的串口轉(zhuǎn)接處理再進行數(shù)據(jù)傳輸,一方面數(shù)據(jù)傳輸效率較低,另一方面不必要地占用了微處理器的資源并降低了微處理器的整體性能,因此這不僅僅是微處理器串口數(shù)量不足的問題,還存在如何解決微處理器的外設(shè)之間的切換互連的問題。
[0006]現(xiàn)有技術(shù)中采用專用的串口擴展芯片不能解決外設(shè)之間直接通信的問題,仍然需要經(jīng)過微處理器進行處理或者轉(zhuǎn)發(fā),因而增加了微處理器的工作負擔。而采用數(shù)字電路或者模擬開關(guān)進行串口切換外設(shè)的解決方案將多個外設(shè)分時復用同一個微處理器串口,雖然可以解決外設(shè)之間直接通信的問題,但是缺點也是顯而易見的,即:多個外設(shè)不能同時與微處理器進行通信。這種方案在特定的應(yīng)用場合中也不失為一種簡單有效的解決方法,但是由于電路之間的連接確定后就很難再改變,因此該方案靈活性與可擴展性都比較差。
【發(fā)明內(nèi)容】
[0007]本發(fā)明所要解決的技術(shù)問題是,提供一種嵌入式微處理器的串口擴展裝置,實現(xiàn)如何對嵌入式微處理器的串口數(shù)量進行擴展,降低擴展復雜度和成本,提高微處理器與外部設(shè)備之間或者外部設(shè)備與外部設(shè)備之間的串口互連的靈活性,并且克服現(xiàn)有技術(shù)中的微處理器不能通過一個串口同時與多個外部設(shè)備進行通信的缺陷。
[0008]為解決以上技術(shù)問題,本發(fā)明實施例提供一種嵌入式微處理器的串口擴展裝置,包括微處理器和可編程邏輯器件。
[0009]所述微處理器包括M個串口和N個控制端口 ;所述可編程邏輯器件包括K個通用輸入輸出端口 ;其中,K > M > 0,N > O ;
[0010]所述微處理器,用于通過所述N個控制端口設(shè)置所述可編程邏輯器件的端口通信模式;
[0011]所述可編程邏輯器件,用于根據(jù)所述端口通信模式,對器件內(nèi)部的可編程邏輯電路進行編程,控制所述可編程邏輯器件上的各個通用輸入輸出端口的通信互連關(guān)系;
[0012]所述可編程邏輯器件的各個通用輸入輸出端口,用于根據(jù)所述通用輸入輸出端口的通信互連關(guān)系,連接一種或多種外圍設(shè)備,實現(xiàn)所述外圍設(shè)備與所述微處理器之間的信號傳輸,和/或,實現(xiàn)所述外圍設(shè)備之間的信號傳輸。
[0013]優(yōu)選地,所述可編程邏輯器件為CPLD器件。
[0014]在一種可實現(xiàn)方式中,所述微處理器上的N個控制端口用于通過并行通信方式,指示和控制所述可編程邏輯器件的端口通信模式。
[0015]其中,所述微處理器控制所述N個控制端口的輸出電平,用于組成指示所述可編程邏輯器件的端口通信模式的N位二進制數(shù),所述端口通信模式的數(shù)量為2n?;蛘?,所述微處理器控制所述N個控制端口的任意P個控制端口的電平,用于組成指示所述可編程邏輯器件的端口通信模式的P位二進制數(shù),所述端口通信模式的數(shù)量為2P,0 < P < N ;所述微處理器控制其余的(N-P)個控制端口的電平,用于選通執(zhí)行當前端口通信模式的外圍設(shè)備。
[0016]進一步地,所述可編程邏輯器件,還用于對每一種所述端口通信模式逐一建立端口互連映射關(guān)系,并根據(jù)所述N個控制端口當前的電平值和所述通用輸入輸出端口的互連映射關(guān)系,對邏輯器件內(nèi)部電路進行編程,選通與所述控制端口當前的電平值相對應(yīng)的通用輸入輸出端口。
[0017]在又一種可實現(xiàn)方式中,所述微處理器上的N個控制端口用于通過串行通信方式,指示和控制所述可編程邏輯器件的端口通信模式。
[0018]本發(fā)明提供的嵌入式微處理器的串口擴展裝置,采用可編程邏輯器件作為橋梁,為嵌入式系統(tǒng)中的微處理器與外設(shè)之間,以及外設(shè)與外設(shè)之間提供了一種靈活的端口互連方案。微處理器通過可編程邏輯器件尤其是CPLD (Complex Programmable Logic Device,復雜可編程邏輯器件)器件連接,可通過建立微處理器自身串口與CPLD器件的通用輸入輸出端口(GPIO,General Purpose Input/Output)的映射關(guān)系,將微處理器的串口拓展為CPLD器件所具備的通用輸入輸出端口,從而通過CPLD器件的通用輸入輸出端口與外部設(shè)備連接。本發(fā)明只需要通過對可編程邏輯器件中的內(nèi)部邏輯電路的軟件控制,即可實現(xiàn)對可編程邏輯器件的各個通用輸入輸出端口的切換控制,無需對硬件電路進行任何修改,因此對微處理器的串口數(shù)量擴展方便簡單,切換靈活,成本低效率高,可移植性強。
【專利附圖】
【附圖說明】
[0019]圖1是本發(fā)明提供的一種嵌入式微處理器的串口擴展裝置的一個實施例的結(jié)構(gòu)示意圖;
[0020]圖2為本發(fā)明提供的嵌入式微處理器的串口擴展裝置與外部設(shè)備連接的結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述。
[0022]參見圖1,是本發(fā)明提供的一種嵌入式微處理器的串口擴展裝置的一個實施例的結(jié)構(gòu)示意圖。
[0023]所述的嵌入式微處理器的串口擴展裝置包括微處理器100和可編程邏輯器件200。
[0024]具體實施時,所述微處理器100包括M個串口和N個控制端口 ;所述可編程邏輯器件200包括K個通用輸入輸出端口(General Purpose Input/Output,簡稱GPIO);其中,K> M > 0,N > O。即可編程邏輯器件200的通用輸入輸出端口數(shù)量要比微處理器100的數(shù)
量要多。
[0025]所述微處理器100,用于通過所述N個控制端口設(shè)置所述可編程邏輯器件200的端
口通信模式。
[0026]所述可編程邏輯器件200,用于根據(jù)所述端口通信模式,對器件內(nèi)部的可編程邏輯電路進行編程,控制所述可編程邏輯器件200上的各個通用輸入輸出端口的通信互連關(guān)系O
[0027]所述可編程邏輯器件200的各個通用輸入輸出端口,用于根據(jù)所述通用輸入輸出端口的通信互連關(guān)系,連接一種或多種外圍設(shè)備,實現(xiàn)所述外圍設(shè)備與所述微處理器100之間的信號傳輸,和/或,實現(xiàn)所述外圍設(shè)備之間的信號傳輸。
[0028]其中,所述可編程邏輯器件200優(yōu)選為CPLD (Complex Programmable LogicDevice,復雜可編程邏輯器件)器件。CPLD是從PAL (Programmable Array Logic,可編程陣列邏輯)和GAL(Generic Array Logic,通用陣列邏輯)器件發(fā)展出來的器件,相對PAL和GAL器件而言,CPLD規(guī)模大,結(jié)構(gòu)復雜,屬于大規(guī)模集成電路范圍。
[0029]CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路,其基本設(shè)計方法是借助集成開發(fā)軟件平臺,利用原理圖、硬件描述語言等方法,生成相應(yīng)的目標文件,通過下載線纜將代碼傳送到目標CPLD芯片中,實現(xiàn)設(shè)計功能的數(shù)字系統(tǒng)。
[0030]需要說明的是,本發(fā)明提供的可編程邏輯器件可采用不同于CPLD的可編程邏輯器件,譬如:FPGA (Field — Programmable Gate Array,現(xiàn)場可編程門陣列)器件。雖然采用FPGA擴展微處理器串口數(shù)量的實現(xiàn)方案也較為靈活,可擴展性和可移植性高,但是由于FPGA器件的成本較高,而且功耗大,其所需要的外圍支撐電路以及驅(qū)動程序均較之于CPLD器件要復雜,不適用于低成本、低功耗的應(yīng)用場合。而CPLD器件具有編程靈活、集成度高、設(shè)計開發(fā)周期短、適用范圍寬、開發(fā)工具先進、設(shè)計制造成本低、對設(shè)計者的硬件經(jīng)驗要求低、標準產(chǎn)品無需測試、保密性強、價格大眾化等一系列優(yōu)點,本發(fā)明優(yōu)選采用CPLD器件作為擴展微處理器串口的可編程邏輯器件。
[0031]具體實施時,CPLD器件200可以用梯形圖來編程邏輯功能,也可以用硬件描述語言來編寫,常用的語言有Verilog HDL和VHDL。
[0032]Verilog HDL 是一種硬件描述語言(Hardware Description Language,簡稱 HDL),以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language,超高速集成電路硬件描述語言)和 Verilog HDL是世界上最流行的兩種硬件描述語言。因此,在本實施例中,可以采用這兩種硬件描述語言,對CPLD器件200的各個接口的連接關(guān)系進行描述和編程,將描述CPLD各個接口的連接關(guān)系的代碼“燒寫”或下載到CPLD器件200中。
[0033]作為一個具體的實施例子,如圖1所示,微處理器100具有六個串口 COMA?C0MF,以及五個控制端口 IOl?105。CPLD器件200上具有的IO(Input-Output)輸入輸出接口(作為對微處理器串口的擴展端口)數(shù)量遠大于微處理器100上的串口數(shù)量。特別地,如圖1所示型號的CPLD器件200共有36個輸入輸出接口。其中,微處理器100的六個串口COMA?COMF與CPLD器件200上的IO接口 I?12物理連接,微處理器100上的每個串口分別對應(yīng)于CPLD器件200的兩個IO接口 ;微處理器100通過控制端口 IOl?105的電平值,控制CPLD器件200的端口通信模式,即建立一種端口互連的對應(yīng)關(guān)系,使得微處理器100的六個串口 COMA?COMF可以通過CPLD器件200上的一個或多個IO接口與外部設(shè)備進行通信。微處理器100與外設(shè)所有串口直接連到CPLD器件200的IO接口上,只要CPLD器件200的IO足夠多,就可以接入更多的端口和外部設(shè)備,可升級性與可擴散性是普通數(shù)字邏輯芯片無法比擬的。
[0034]控制微處理器100的各個串口與CPLD器件200上的其他通用輸入輸出端口的信號連通關(guān)系;或者,當CPLD器件200上的一個或多個IO接口是用于連接外圍設(shè)備時,則CPLD器件200可以根據(jù)控制端口 IOl?105的電平值接通所述外圍設(shè)備與微處理器100的信號連接,或者兩種外圍設(shè)備之間的信號連接,無需經(jīng)過微處理器100的處理。因此CPLD器件200在本發(fā)明中起到了轉(zhuǎn)接橋梁的作用。
[0035]譬如,CPLD器件200通過以下偽代碼對芯片上的各個接口的連通關(guān)系進行編程控
制:
[0036]
【權(quán)利要求】
1.一種嵌入式微處理器的串口擴展裝置,其特征在于,包括微處理器和可編程邏輯器件; 所述微處理器包括M個串口和N個控制端口 ;所述可編程邏輯器件包括K個通用輸入輸出端口 ;其中,K > M > O,N > O ; 所述微處理器,用于通過所述N個控制端口設(shè)置所述可編程邏輯器件的端口通信模式; 所述可編程邏輯器件,用于根據(jù)所述端口通信模式,對器件內(nèi)部的可編程邏輯電路進行編程,控制所述可編程邏輯器件上的各個通用輸入輸出端口的通信互連關(guān)系; 所述可編程邏輯器件的各個通用輸入輸出端口,用于根據(jù)所述通用輸入輸出端口的通信互連關(guān)系,連接一種或多種外圍設(shè)備,實現(xiàn)所述外圍設(shè)備與所述微處理器之間的信號傳輸,和/或,實現(xiàn)所述外圍設(shè)備之間的信號傳輸。
2.如權(quán)利要求1所述的嵌入式微處理器的串口擴展裝置,其特征在于,所述可編程邏輯器件為CPLD器 件。
3.如權(quán)利要求1所述的嵌入式微處理器的串口擴展裝置,其特征在于,所述微處理器上的N個控制端口用 于通過并行通信方式,指示和控制所述可編程邏輯器件的端口通信模式。
4.如權(quán)利要求3所述的嵌入式微處理器的串口擴展裝置,其特征在于,所述微處理器控制所述N個控制端口的輸出電平,用于組成指示所述可編程邏輯器件的端口通信模式的N位二進制數(shù),所述端口通信模式的數(shù)量為2n。
5.如權(quán)利要求3所述的嵌入式微處理器的串口擴展裝置,其特征在于, 所述微處理器控制所述N個控制端口的任意P個控制端口的電平,用于組成指示所述可編程邏輯器件的端口通信模式的P位二進制數(shù),所述端口通信模式的數(shù)量為2P,O < P< N ; 所述微處理器控制其余的(N-P)個控制端口的電平,用于選通執(zhí)行當前端口通信模式的外圍設(shè)備。
6.如權(quán)利要求4或5所述的嵌入式微處理器的串口擴展裝置,其特征在于,所述可編程邏輯器件,還用于對每一種所述端口通信模式逐一建立串口互連映射關(guān)系,并根據(jù)所述N個控制端口當前的電平值和所述通用輸入輸出端口互連映射關(guān)系,對邏輯器件內(nèi)部電路進行編程,選通與所述控制端口當前的電平值相對應(yīng)的通用輸入輸出端口。
7.如權(quán)利要求1所述的嵌入式微處理器的串口擴展裝置,其特征在于, 所述微處理器上的N個控制端口用于通過串行通信方式,指示和控制所述可編程邏輯器件的端口通信模式。
【文檔編號】G06F13/40GK104021103SQ201410245633
【公開日】2014年9月3日 申請日期:2014年6月4日 優(yōu)先權(quán)日:2014年6月4日
【發(fā)明者】陳偉, 賓顯文, 林欽堅 申請人:廣州中海達衛(wèi)星導航技術(shù)股份有限公司