當前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化

摘 要: 基于SoPC技術(shù)和嵌入式系統(tǒng),利用Nios II軟核處理器的優(yōu)異性能和軟硬件協(xié)同設(shè)計的方法完成了GPIB、UART和USB接口協(xié)議轉(zhuǎn)換器的設(shè)計,實現(xiàn)了程控儀器接口GPIB與主控計算機RS-232、USB接口之間的轉(zhuǎn)換。
關(guān)鍵詞: SoPC; Nios II; 協(xié)議轉(zhuǎn)換器

 目前國內(nèi)外在解決儀器GPIB接口與RS-232或USB接口的轉(zhuǎn)接問題時能常遵循“微處理器+專用接口控制芯片”和“微處理器+FPGA”的設(shè)計思路,其中微處理器主要為單片機、ARM、PowerPC 和 MIPS等硬核處理器;FPGA的作用主要是用來實現(xiàn)專用接口芯片的功能,方法是在FPGA內(nèi)部編寫專用接口芯片的IP核。“微處理器+專用接口控制芯片”的設(shè)計方案雖然成本較低,技術(shù)門檻也不高,但是不利于系統(tǒng)的功能擴展與性能升級;而“微處理器+FPGA”的設(shè)計方案中,IP核的編寫難度較大,開發(fā)周期太長;如果購買IP核,價格又過于昂貴。綜合分析以上方法的優(yōu)缺點,本文提出一種基于Nios II軟核處理器的SoPC解決方案,利用Nios II軟核處理器的優(yōu)異性能以及?滋C/OS-II嵌入式實時操作系統(tǒng)在執(zhí)行效率、占用內(nèi)存、實時性能以及可擴展性等方面的優(yōu)勢,設(shè)計了GPIB、RS-232和USB接口協(xié)議轉(zhuǎn)換器,實現(xiàn)了GPIB-USB、GPIB-UART及UART-USB協(xié)議之間的轉(zhuǎn)換[1,2]。該方案具有設(shè)計靈活、可重構(gòu)、集成度高、實現(xiàn)風險低、開發(fā)周期短的優(yōu)點。
1 總體設(shè)計方案
 設(shè)計選用Altera公司的低成本SoPC平臺——Cyclone II系列FPGA。Cyclone II提供百萬級門陣列資源,包含4 608~68 416個邏輯單元;提供1個全局時鐘網(wǎng)絡與4個鎖相環(huán);支持的存儲器類型包括雙端口及單口RAM、ROM和FIFO緩沖器,存儲器的數(shù)據(jù)總線最大可達36 bit,頻率可達250 MHz。Cyclone II系列提供最高622個用戶自定義I/O引腳,為接口協(xié)議轉(zhuǎn)換器的設(shè)計提供了充裕的接口資源。圖1給出了基于Cyclone II平臺的儀器接口協(xié)議轉(zhuǎn)換器的總體設(shè)計方案。

圖1中的Nios II微處理器、存儲器接口、片上存儲器、定時器以及各類接口控制器都是由FPGA內(nèi)部的邏輯單元和RAM資源提供的。方案中RS-232接口協(xié)議的實現(xiàn)相對比較簡單,可以根據(jù)Altera公司提供的UART軟核配置獲得,而USB和GPIB協(xié)議部分均選用專用接口芯片來完成。Nios處理器通過Avalon Switch Fabric總線將Nios II處理器、存儲器和接口控制器等系統(tǒng)組件橋接在一起,形成一個接口統(tǒng)一的高性能SoPC系統(tǒng)[3]。其中,Nios II處理器主要完成協(xié)議之間的轉(zhuǎn)換,并將?滋C/OS-II操作系統(tǒng)內(nèi)核移植到Nios II處理器上。開發(fā)中使用的工具包括Quartus II(含有集成的SoPC Builder工具包)、Nios II IDE以及仿真軟件ModelSim,利用Verilog語言進行硬件設(shè)計,利用C語言進行軟件開發(fā)。
2 接口硬件電路設(shè)計
2.1 GPIB接口電路設(shè)計
GPIB接口芯片選用NI公司的標準GPIB控制芯片NAT9914,它能夠完成IEEE488.2標準協(xié)議中所有接口功能,并且在軟件上與TI公司的TMS9914A及NEC公司的?滋PD7120兼容,具有可編程時鐘和波特率,直接存儲器存取等功能。NAT9914配套使用數(shù)據(jù)轉(zhuǎn)換器75160以及握手線和控制線轉(zhuǎn)換器75162完成GPIB接口的設(shè)計。GPIB接口電路設(shè)計如圖2所示。

2.2 USB接口電路設(shè)計
 ISP1362是飛利浦公司推出的OTG(On-The-Go)產(chǎn)品,在單芯片上集成了一個OTG控制器、一個高級主控制器(PSHC)和一個基于飛利浦公司ISP1181的外設(shè)控制器。ISP1362的OTG控制器完全兼容USB2.0及OTG Suppliment 1.0協(xié)議,主機和設(shè)備控制器兼容USB 2.0協(xié)議,支持12 Mb/s的高速傳輸和1.5 Mb/s的低速傳輸。本設(shè)計中USB接口目前主要用來完成設(shè)備的功能,但考慮到以后繼續(xù)開發(fā)中功能升級的需要,所以選用ISP1362芯片來完成USB接口的設(shè)計,它可以實現(xiàn)繼續(xù)開發(fā)中USB的主機和OTG功能。
2.3 RS-232接口電路設(shè)計
 SoPC Builder的標準組件庫中提供了UART組件,使用這個組件可以方便地實現(xiàn)UART接口功能。為了保證UART的電氣相容性,使用了一片MAX232來實現(xiàn)UART的電平轉(zhuǎn)換。
圖3為RS-232接口系統(tǒng)框圖,具有Avalon接口的通用UART核在FPGA上的Nios II處理器和外設(shè)之間實現(xiàn)了一種串行字符流通信方式,然后通過MAX232芯片實現(xiàn)電平轉(zhuǎn)換,從而實現(xiàn)了RS-232接口功能??梢愿鶕?jù)需要對其硬件進行配置,改變其波特率、奇偶校驗位、停止位、傳輸?shù)臄?shù)據(jù)位以及其他可選的RTS-CTS流控制信號等。

3 SoPC Builde中總體架構(gòu)設(shè)計
 設(shè)計中的Nios II微處理器內(nèi)核、onchip_mem IP核、timer IP核、 JTAG調(diào)試模塊jtag_uart、Flash控制器cfi_flash、SDRAM控制器sdram、UART組件uart以及用于液晶屏顯示的組件lcd等均使用SoPC Builder工具在標準組件庫中定制,而用于實現(xiàn)Avalon總線與片外NAT9914芯片和ISP1362芯片連接的接口控制器組件是通過自己編寫Verilog代碼來自定制的。在SoPC Builder中通過Avalon Switch Fabric總線將各組件互連起來。
Nios II嵌入式處理器是基于哈佛結(jié)構(gòu)的RISC通用嵌入式處理器軟核,能與用戶邏輯相結(jié)合,編程至Altera的FPGA中。處理器具有32位指令集,32位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。它針對可編程邏輯進行了優(yōu)化設(shè)計,也為可編程單芯片系統(tǒng)設(shè)計了一套綜合解決方案[2]。Nios II處理器系列包括三種內(nèi)核:高性能的內(nèi)核Nios II/f、低成本內(nèi)核Nios II/e及性能/成本折中的標準內(nèi)核Nios II/s。本系統(tǒng)采用高性能的內(nèi)核Nios II/f以獲得最強的處理器性能。
4 接口協(xié)議轉(zhuǎn)換器軟件開發(fā)
4.1 軟件總體框架
軟件部分需要完成的任務主要包括:GPIB接口功能的開發(fā)、RS-232接口功能的開發(fā)和USB接口功能的開發(fā);μC/OS-II嵌入式操作系統(tǒng)在Nios II處理器上的移植;在Nios II處理器上實現(xiàn)接口協(xié)議的轉(zhuǎn)換,完成各個接口之間的相互通信。Nios II系統(tǒng)下的軟件分層架構(gòu)如圖4所示。

 Nios II 處理器硬件系統(tǒng)是軟件開發(fā)的基礎(chǔ),同時也是整個分層架構(gòu)的核心。
 設(shè)備驅(qū)動軟件是實現(xiàn)處理器與設(shè)備通信的特殊程序,它相當于硬件的接口,操作系統(tǒng)只有通過這個接口才能控制硬件設(shè)備的工作,如果設(shè)備沒有對應的驅(qū)動軟件便不能正常工作。
 硬件抽象層應用程序接口HAL API(Application Program Interface),是由HAL系統(tǒng)庫提供的,它常與NewLib C標準庫集成在一起,為用戶訪問外設(shè)提供了標準的接口,開發(fā)人員可以非常方便地使用這些接口來與底層硬件通信。
 μC/OS-II內(nèi)核在Nios II的HAL系統(tǒng)庫之上進行操作,它可以訪問所有的HAL服務,并且能夠調(diào)用HAL的API函數(shù)。μC/OS-II提供信號量、消息郵箱、消息隊列、事件標志、消息傳遞、存儲管理、時間管理等函數(shù)。本設(shè)計中主要用它來完成接口協(xié)議轉(zhuǎn)換時的多任務調(diào)度。
 GPIB組件、USB組件和RS-232組件分別實現(xiàn)了Nios II微處理器和GPIB、USB、RS-232外設(shè)之間的通信。
 系統(tǒng)初始化部分用于初始化μC/OS-II、GPIB組件、USB組件和RS-232組件,實現(xiàn)所有應用程序的任務、信號量、隊列和事件標志的實時操作系統(tǒng)任務之間通信資源的創(chuàng)建。
 最外一層包含發(fā)送GPIB命令和數(shù)據(jù)任務、接收GPIB數(shù)據(jù)和命令任務、發(fā)送USB命令和數(shù)據(jù)任務、接收USB命令和數(shù)據(jù)任務、發(fā)送RS-232命令和數(shù)據(jù)任務、接收RS-232命令和數(shù)據(jù)任務等。同時,該層通過信號量、隊列和事件標志實現(xiàn)任務之間的通信。
4.2 GPIB接口的軟件開發(fā)
 GPIB數(shù)據(jù)通信部分的代碼編程方式主要有查詢方式和中斷方式兩種。盡管查詢方式也能較好地實現(xiàn)數(shù)據(jù)通信的基本要求,但其功能單一、系統(tǒng)資源利用率低,不適合系統(tǒng)功能的維護和擴展。因此,本設(shè)計中主要采用了中斷方式完成GPIB數(shù)據(jù)通信部分的代碼編程。引起NAT9914向處理器發(fā)出中斷信號的事件主要有發(fā)送數(shù)據(jù)事件(BO)、接收數(shù)據(jù)事件(BI)、接收數(shù)據(jù)結(jié)束事件(END)、接收GET命令事件和接收DCAS命令事件。一旦這些事件發(fā)生,NAT9914就會觸發(fā)Nios II處理器的外部中斷,Nios II終止正常工作,將現(xiàn)場數(shù)據(jù)壓入堆棧保護,并調(diào)用外部中斷處理函數(shù),響應NAT9914芯片的中斷申請[3-4]。中斷處理服務流程圖如圖5所示。

4.3 UART接口的軟件開發(fā)
 在 Nios II 下,由于HAL的存在,UART編程已經(jīng)變成標準的文件操作了。Nios II 把對UART的流操作當成了一種文件操作。操作一個UART時,只需要對它相應的設(shè)備驅(qū)動讀寫數(shù)據(jù)。Altera提供的UART驅(qū)動程序是一個集成到HAL系統(tǒng)中的HAL字符模式設(shè)備驅(qū)動程序,可以采用標準輸入/輸出流的方式使用UART。使文件指針指向打開的UART設(shè)備,即可通過標準C庫函數(shù)fwrite、fread、fprintf、fget等來進行串口的讀/寫操作了。
 在寫設(shè)備程序時需要通過寄存器直接訪問UART。altera_avalon_uart_reg.h定義了UART核的寄存器映像,提供訪問底層硬件的符號常量,該文件的符號僅被設(shè)備驅(qū)動程序使用。altera_avalon_uart.h、altera_avalon_uart.c為HAL庫提供了UART核設(shè)備的驅(qū)動程序。
4.4 USB接口的軟件開發(fā)[5]
 ISP1362在設(shè)計中作為USB設(shè)備使用。USB設(shè)備與Nios II系統(tǒng)通信的原理框圖如圖6所示。系統(tǒng)上電后,Nios II首先自身進行初始化,初始化完成后,通過發(fā)送相關(guān)指令,完成對ISP1362芯片的初始化。ISP1362芯片初始化完成后,主機就會給設(shè)備分配地址,并根據(jù)設(shè)備提供的描述符完成對設(shè)備的配置,從而實現(xiàn)USB設(shè)備的一般功能。

USB接口控制器的軟件結(jié)構(gòu)如圖7所示。軟件包括信息處理和中斷服務例程兩部分。硬件抽象層用于將數(shù)據(jù)從硬件傳輸?shù)綄⒁恢餮h(huán)處理的存儲器空間中。HAL4SYS.C、HAL4D13.C、ISR.C、CHAP_9.C、D13BUS.C和MAINLOOP.C是實現(xiàn)USB設(shè)備控制器功能的六個主要的程序文件。其中,HAL4SYS.C和HAL4D13.C程序文件作為硬件抽象層,ISR.C程序文件作為中斷服務例程,CHAP_9.C和D13BUS.C作為協(xié)議層,MAINLOOP.C用于主循環(huán)控制。


 ISP1362在Nios II系統(tǒng)中采用中斷的方法進行任務處理。當ISP1362收到包含設(shè)備地址的輸出或設(shè)置事務時,通過軟件控制將接收到的數(shù)據(jù)存儲在適當?shù)亩它c位置,然后觸發(fā)一個中斷。設(shè)備的中斷服務例程處理接收到的數(shù)據(jù)。當設(shè)備收到包含設(shè)備地址的輸入事務時,如果ISP1362有準備傳給主機的數(shù)據(jù),它從指定的端點送出數(shù)據(jù),然后觸發(fā)一個中斷,設(shè)備的中斷服務例程做適當?shù)奶幚?,然后準備下一個輸入事務。
4.5 μC/OS-II實時操作系統(tǒng)
 根據(jù)多功能儀器接口協(xié)議轉(zhuǎn)換器的特點,設(shè)計需滿足實時性和并發(fā)性的要求,以便更好地支持多種接口協(xié)議運行時的多任務環(huán)境的調(diào)度,所以應用軟件應該基于嵌入式實時操作系統(tǒng)??紤]到?滋C/OS-II的規(guī)模較小、實時性和可靠性較高,以及Nios II IDE開發(fā)環(huán)境對?滋C/OS-II的良好支持,故操作系統(tǒng)選擇?滋C/OS-II。它通過為每個任務分配單獨的任務堆棧來保存任務工作環(huán)境,提供任務管理與調(diào)度,任務間的同步、互斥與通信,時間和中斷管理、內(nèi)存的動態(tài)分配等多種系統(tǒng)服務。設(shè)計中?滋C/OS-II主要完成任務的管理與調(diào)度,通過創(chuàng)建消息郵箱、信號量實現(xiàn)任務與任務之間、任務與中斷服務程序之間的同步與互斥,以保證它們協(xié)調(diào)運行[6]。
5 系統(tǒng)功能驗證
5.1 RS-232與GPIB接口通信功能測試
 通過UART數(shù)據(jù)線將計算機的UART接口與接口轉(zhuǎn)換器的UART接口連接,將接口轉(zhuǎn)換器的GPIB接口與Aglient 33250A連接。
 運行串口調(diào)試助手,并在串口調(diào)試助手中進行如下設(shè)置:串口設(shè)置為COM1,波特率設(shè)置為57 600,校驗位為NONE,數(shù)據(jù)位為8,停止位為1。設(shè)置完成后,在串口調(diào)試助手中手動發(fā)送GPIB接口的SCPI命令。
 以發(fā)送*IDN?命令為例,串口調(diào)試助手下方輸入*IDN?,之后點擊發(fā)送,觀察串口調(diào)試助手接收窗口的顯示變化,這時會顯示Received String: Agilent Technologies,33250A,0,2.04-1.01-2.00-03-2,其中Agilent Technologies,33250A,0,2.04-1.01-2.00-03-2是33250A接收到來自計算機串口的識別查詢命令后,要將自己的標識發(fā)往的計算機串口號。
5.2 RS-232與USB接口通信功能測試
 分別通過USB接口線和RS-232接口線將計算機主機USB接口與接口轉(zhuǎn)換器USB接口相連,同時通過UART數(shù)據(jù)線將計算機的UART接口與接口轉(zhuǎn)換器的UART接口連接。
運行USB調(diào)試助手和串口調(diào)試助手,同時觀察USB接口發(fā)送數(shù)據(jù)到串口的情況。主機通過USB調(diào)試助手向協(xié)議轉(zhuǎn)換器發(fā)送8 B數(shù)據(jù)“6e 69 68 61 6f 6d 61 00”,這8 B數(shù)據(jù)ASCII碼對應的字符串為“nihaoma”,觀察USB調(diào)試助手接收區(qū)和串口調(diào)試助手的接收區(qū),這時USB調(diào)試助手接收區(qū)顯示“6e 69 68 61 6f 6d 61 00”,串口調(diào)試助手的接收區(qū)顯示“usb received 8 bytes data is:nihaoma”。
系統(tǒng)基于SoPC平臺,采用軟硬件協(xié)同設(shè)計的方法完成了GPIB、UART和USB接口協(xié)議轉(zhuǎn)換器的設(shè)計。實現(xiàn)了RS-232接口的收發(fā)功能、USB設(shè)備控制器功能、GPIB接口的控者、聽者、講者、源方掛鉤、受方掛鉤五大功能,以及通過RS-232接口控制GPIB接口功能和通過USB接口控制RS-232接口功能。
參考文獻
[1] 吳杲,顧亞平,陳光礻禹 . USB-GPIB控制器設(shè)計[J].測控技術(shù),2004,23(3):59-61.
[2] 李蘭英. Nios II 嵌入式軟核SoPC設(shè)計原理及應用[M]. 北京:航空航天大學出版社,2006.
[3] 黃君凱,吳延軍. RS232-GPIB控制器的設(shè)計[J]. 電子技術(shù)應用,2006,32(3):90-92.

[4] National Instruments Corp. Nat9914 Reference Manual[Z]. 1995.
[5] Philips Semiconductors. ISP1362 Embedded Programming Guide Rev: 0.9[Z]. 2002.
[6] [美] Jean J. Labrosse. 嵌入式實時操作系統(tǒng)?滋C/OS-II [M]. 邵貝貝,等譯. 第2版. 北京:北京航空航天大學出版社,2003.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉