一種基于SoC FPGA的多串口并行處理架構的制作方法
【專利摘要】本發明屬于分散式工業控制【技術領域】,涉及一種基于SoCFPGA的多串口并行處理架構,包括收發器、集成了現場可編程邏輯門陣列FPGA和處理器CPU的SoCFPGA芯片,其特征在于:所述SocFPGA芯片中的FPGA內部通過硬件描述語言設計多個UART核和與各UART核相對應的多個協處理器MCU;FPGA內嵌多個與各協處理器MCU相對應的嵌入式存儲器,各嵌入式存儲器配置為可以讀寫操作的雙端口模式;所述多個UART核與多個相對應的所述收發器通過RS232/RS422/RS485接口連接。本發明系統集成度高、硬件設計成本低,能有效降低CPU負荷,提升串行總線數據傳輸帶寬,可以靈活擴展多路串行通道。
【專利說明】—種基于SoC FPGA的多串口并行處理架構
【技術領域】
[0001]本發明屬于分散式工業控制【技術領域】,具體涉及一種基于SoC FPGA的多串口并行處理架構。
【背景技術】
[0002]UART (通用異步收發傳輸器)是一種廣泛應用于短距離、低速通信的串行傳輸接口,其操作簡單、工作可靠、抗干擾強、成本低、傳輸距離遠(組成485網絡可以傳輸1,200米以上)。在數據通信、計算機網絡以及分散式工業控制系統中,處理器經常采用串行通信與外設模塊交換數據和信息。
[0003]在現代的工業控制系統中,多串口通信應用越來越廣泛。尤其是數據采集領域,工程應用中對串口數量需求增加,處理器需要實時采集并處理來自于多個串行外設的數據。通用串口實現方式如圖1所示。由于普通處理器或ASIC能提供的串口數量有限,當需要控制的串行終端設備超過四個以上時,傳統的架構就難以滿足實際應用要求了,如硬件成本昂貴、難以擴展、功耗較高、數據處理實時性不高、處理器負荷高、UART總線帶寬低等問題。具體表現在:1)串行外設用到RS232或RS422/485異步串行接口,一般采用專用的集成電路即UART芯片實現。如8250、16550AFN等芯片都是常見的UART器件,但這類器件硬件串行接口資源有限,而且內部結構設計相當復雜,芯片引腳較多,有的含有許多輔助模塊(如FIFO),在實際使用時往往只用到UART基本功能,設計時使用這類芯片,造成了資源浪費;
2)處理器或專用的多串口芯片所提供的可擴展串口數量有限,無法實現更多UART串口擴展;3)外圍接口電路復雜,板卡設計難度較大;4)使用UART芯片還會使硬件成本增加并且增加電路板的面積,無法大規模應用于多通道數據采集場合;5)處理器采用串行方式依次掃描各個通道,然而串口通訊速率過低導致CPU等待時間過長,難以滿足實時性要求較高需要并行處理的實際需求。
【發明內容】
[0004]鑒于現有技術中存在的上述問題,本發明要解決的技術問題是提供一種硬件設計成本低、能有效降低CPU負荷、可以靈活擴展多路串行通道的多串口并行處理架構。
[0005]為了實現以上目的,本發明采用的技術方案是:一種基于SoC FPGA的多串口并行處理架構,包括收發器、集成了現場可編程邏輯門陣列FPGA和處理器CPU的SoC FPGA芯片,其特征在于:所述SoC FPGA芯片中的FPGA內部通過硬件描述語言設計多個UART核和與各UART核相對應的多個協處理器MCU ;所述FPGA內嵌多個與各協處理器MCU相對應的嵌入式存儲器,各嵌入式存儲器配置為可以讀寫操作的雙端口模式;所述多個UART核與多個相對應的所述收發器通過RS232/RS422/RS485接口連接。
[0006]所述SoCFPGA芯片內由相對應的UART核、協處理器MCU和嵌入式存儲器依次連接組成的多路串行通道,各通道互相獨立,SoC FPGA芯片內的CPU通過內部總線可同時掃描并處理所有通道的外設信息。[0007]所述協處理器MCU完成數據鏈路層工作,所述SoC FPGA芯片內的處理器CPU完成
應用層工作。
[0008]本發明的積極效果是:1)利用SoC FPGA內富裕的FPGA邏輯資源可以輕松實現多路UART控制器,根據工程需要,只需修改FPGA邏輯即可靈活構建多協處理器MCU和多UART核,靈活增減串行通道數量,大大提高了系統集成度;2)在高達16乃至32串行通道時,板卡外圍電路設計復雜度和難度大大降低,極大縮減昂貴硬件成本,可大規模應用于多通道數據采集場合;3)在SoC FPGA內的處理器CPU和UART控制器之間設有多個獨立并行的協處理器MCU,協處理器MCU完成數據鏈路層工作,處理器CPU主要負責應用層工作,這種架構可以讓處理器并行掃描所有通道的串行外設,大大降低CPU的負荷,提升串行總線數據傳輸帶寬;4)根據工程需要配合外部收發芯片,SoC FPGA只需稍作邏輯修改即可靈活支持RS232/RS422/RS485不同的通訊協議和波特率。
【專利附圖】
【附圖說明】
[0009]下面結合附圖和【具體實施方式】對本發明作進一步說明。
[0010]圖1是現有的通用串口實現方式示意圖;
圖2是本發明SoC FPGA同時控制八通道并行掃描處理的架構示意圖;
圖3是SoC FPGA中CPU與MCU工作所處的網絡模型位置示意圖。
【具體實施方式】
[0011]為了實現并行多通道串行外設的支持,增加UART總線串行通信帶寬,降低CPU的負荷,提高系統集成度,縮減硬件成本,如圖2所示,本發明基于SoCFPGA的多串口并行處理架構,包括收發器、集成了現場可編程邏輯陣列FPGA和處理器CPU的SoC FPGA芯片,CPU通過內部總線與FPGA連接,其特征在于:所述SoC FPGA芯片中的FPGA內部通過硬件描述語言設計多個UART核和與各UART核相對應的多個協處理器MCU ;所述FPGA內嵌多個與各協處理器MCU相對應的嵌入式存儲器,各嵌入式存儲器配置為可以讀寫操作的雙端口模式;所述多個UART核與多個相對應的所述收發器通過RS232/RS422/RS485接口連接。
[0012]所述SoC FPGA芯片內部集成了單核或多核處理器和現場可編程邏輯門陣列FPGA,處理器CPU和FPGA之間通過內部總線互聯。
[0013]所述的SoCFPGA芯片內由相對應的UART核、協處理器MCU和嵌入式存儲器依次連接組成的多路串行通道,各通道互相獨立,CPU可同時掃描并處理所有通道的外設信息。
[0014]所述協處理器MCU完成數據鏈路層工作,所述SoC FPGA芯片內的處理器CPU完成應用層工作(如圖3所示)。
[0015]本發明中SoCFPGA實現多UART接口、多協處理器處理方式,通過SoCFPGA可以靈活構建多協處理器MCU和多UART核,SoCFPGA構建的UART核與外部的收發器通過RS232/RS422/RS485連接,這樣可以靈活擴展多路串行通道。
[0016]SoC FPGA中的處理器CPU通過內部總線從FPGA讀取、發送數據。CPU主要負責應
用層工作。
[0017]SoCFPGA芯片內嵌嵌入式存儲器,配置成可以讀寫操作的真正雙端口模式(如圖2中的Dual Port),用以緩存待發送或接受的數據。[0018]協處理器MCU是通過SoCFPGA構建的虛擬協處理器,主要完成數據鏈路層工作,處理來自于UART核的數據或將來自于Dual Port的并行數據處理后發送給UART核。
[0019]UART核實現了 UART功能,提供與外部串口收發器的UART接口,在協處理器MCU的控制下高效收發串行數據。
[0020]收發器是UART接口芯片,主要完成RS232/RS422/RS485電平和TTL/C0MS電平間的轉換。SoC FPGA處理器和終端均采用TTL電平及正邏輯,它們與EIA采用的電平及負邏輯不兼容,需在接口電路中進行轉換。
[0021]為了提高系統的集成度,支持多路并行獨立串口,提高UART總線帶寬,降低CPU的負荷,縮減硬件成本,本發明使用SoCFPGA中的現場可編程邏輯門陣列FPGA構建多個UART核,根據工程應用需要只需更改編程邏輯即可靈活增減串行通道數量。SoC FPGA中的現場可編程門陣列FPGA由可配置的邏輯模塊、輸入輸出模塊和內部連線組成。FPGA利用查找表(LUT)實現組合邏輯,進而驅動其它邏輯電路和I/O接口,而存儲在內部靜態存儲單元的編程數據決定各邏輯單元的邏輯功能和各模塊之間的連接關系。通過硬件描述語言在FPGA內部配置多個獨立工作的組合邏輯單元,實現多通道并行UART通信功能。如圖2所示,在SoCFPGA中的FPGA內部通過硬件描述語言分別設計多個UART核和多個協處理器MCU,將FPGA內嵌的嵌入式存儲器可配置成多個真正雙端口存儲器。該方法有集成度高、體積小、功耗低和速度快等優點,而且還可以根據用戶的需求對系統功能進行重構。
[0022]在多串口數據采集應用中,需要實時的進行數據采集、對串行終端設備進行實時控制。傳統的多通道串行架構中,CPU是依次查詢各個串行端口的狀態,順序掃描各端口,造成CPU耗費大量的時間和資源,并且串行總線帶寬隨著通道數量的增加而減小。本發明中采用的方法是:在SoCFPGA中的FPGA內部通過硬件描述語言構建多個協處理器MCU,并將FPGA內嵌的嵌入式存儲器配置成多個真正雙端口存儲器。協處理器主要完成數據鏈路層工作(如圖3),處理來自于UART核的數據或將來自于Dual Port的并行數據處理后發送給UART核。接受數據時,將來自于UART核的數據處理后以并行數據方式緩存在Dual Port,相應的Dual Port會向CPU發送接收中斷請求,CPU可在完成當前任務后響應中斷,然后一次讀取來自于Dual Port中的數據,CPU無需再花大量時間等待低速的UART核將數據發送完成。CPU只需負責應用層工作,降低了 CPU的負荷。
[0023]發送數據時,SoC FPGA中的處理器CPU并行掃描所有通道,查詢到來自于某個通道的請求發送狀態信息后,將待發送給某個通道的數據緩存在相應通道的Dual Port存儲器中,相應通道的協處理器一旦查詢到對應的Dual Port中有處理器發送的數據,立即啟動工作進行相應處理后輸出給UART核。處理器也可以將待發送給串行外設的數據一次發送到所有通道上的Dual Port中,然后供各通道上的協處理器處理,處理器將數據存放在各通道上的Dual Port中后可以立即去處理其他的任務,無需再花大量時間去等待低速的UART接受,這樣大大降低了處理器的負荷和等待時間。本發明中的協處理器MCU和Dual Port可以實時高效的將待發送的數據輸出給UART核,或將處理器待接收的數據實時存放在相應通道的Dual Port中,各個串行通道完全獨立,互不影響。
[0024]數據傳輸帶寬是串行通信的瓶頸,串行通道數量越多帶寬越低。本發明提出的基于SoC FPGA的多串口并行處理架構引入了協處理器MCU和Dual Port存儲器,可以讓高速的CPU高效發送數據到低速的UART核,或實時接收來自于UART外設的數據,每個通道均設數據緩存存儲器Dual port、協處理器MCU,各通道互相獨立,并行工作。串行總線上數據帶寬是所有通道上最大帶寬的總和,對于8路RS422,總線帶寬可高達64Mbit/s。
[0025]串行通訊標準的靈活支持也是串行通訊所期望的功能。除了常用的RS232標準,還有RS422、RS485標準,專用的UART芯片很少有可以同時支持RS232/RS422/RS485的,即使有能同時支持三種通訊協議的專用UART芯片,其價格也較貴,靈活性和性價比低。
[0026]在本發明中,通過硬件描述語言在SoCFPGA內部實現多個獨立工作的UART核和軟核協處理器MCU,數據鏈路層的通信協議工作在MCU里實現,根據工程需要配合外部收發芯片,SoCFPGA只需稍作邏輯修改即可支持不同的通訊協議、波特率。
【權利要求】
1.一種基于SoC FPGA的多串口并行處理架構,包括收發器、集成了現場可編程邏輯門陣列FPGA和處理器CPU的SoC FPGA芯片,其特征在于:所述SoC FPGA芯片中的FPGA內部通過硬件描述語言設計多個UART核和與各UART核相對應的多個協處理器MCU ;FPGA內嵌多個與各協處理器MCU相對應的嵌入式存儲器,各嵌入式存儲器配置為可以讀寫操作的雙端口模式;所述多個UART核與多個相對應的所述收發器通過RS232/RS422/RS485接口連接。
2.根據權利I要求所述的一種基于SoCFPGA的多串口并行處理架構,其特征在于:所述SoC FPGA芯片中的FPGA內由相對應的UART核、協處理器MCU和嵌入式存儲器依次連接組成的多路串行通道,各通道互相獨立,所述CPU可同時掃描并處理所有通道的外設信息。
3.根據權利I要求所述的一種基于SoCFPGA的多串口并行處理架構,其特征在于:所述協處理器MCU完成數據鏈路層工作,SoC FPGA芯片內的處理器CPU完成應用層工作。
【文檔編號】G06F13/20GK103714024SQ201310693770
【公開日】2014年4月9日 申請日期:2013年12月18日 優先權日:2013年12月18日
【發明者】劉玉升, 王楠 申請人:國核自儀系統工程有限公司