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