隨著微電子工藝技術(shù)和IC設計技術(shù)的不斷提高,,整個系統(tǒng)都可集成在一個芯片上,,而且系統(tǒng)芯片的復雜性越來越高。為了提高效率,,復用以前的設計模塊已經(jīng)成為系統(tǒng)世馘 (SOC)設計的必上之路,。SOC的實現(xiàn)基本上有兩種方法,一種是用ASIC芯片實現(xiàn),,另一種是FPGA或PLD芯片實現(xiàn),。后一種實現(xiàn)也稱為SOPC實現(xiàn)。SOPC技術(shù)是美國Altera公司于2000年最早提出的,,即用大規(guī)??删幊唐骷崿F(xiàn)SOC的功能。它為SOC的實現(xiàn)提供了一種簡單易行而又成本低廉的手段,,極大地促進了SOC的發(fā)展,。本文設計就是采用SOPC技術(shù),在一塊FPGA芯片上,,實現(xiàn)一個水文測報通信系統(tǒng),。該系統(tǒng)是專門為國家防汛指揮系統(tǒng)項目而開發(fā)的實時多任務的前置通信控制機,用于實現(xiàn)水文數(shù)據(jù)的傳輸,、處理和存儲,。
國家防汛指揮系統(tǒng)工程啟動之后,對水文測報網(wǎng)絡中的通信控制機性能提出了更加苛刻的要求:更多,、更快速的通信端口,;更大的存儲容量,;更高的可靠性;更強的實時性,;更強的可操作性,;更便捷的應用程序開發(fā)平臺。為了實現(xiàn)這些要求,,以前曾采有傳統(tǒng)的單片機系統(tǒng)完成這項工作,,但這些方法存 幾大缺陷:(1)系統(tǒng)占用面積比較大;(2)管腳的數(shù)量比較多,,因而電路板問題引導發(fā)故障較多,;(3)電路板信號傳送之間存在干擾,系統(tǒng)運行速度難以達到要求,。針對這些問題,,本文采用SOC設計方式,進行軟硬件協(xié)同設計,,把整個可復用的內(nèi)核如8051IP核、USB IP核,、UART IP核等集成在一塊FPGA芯片上,,用WISHBONE總線構(gòu)成一個完整的片上通信系統(tǒng)。實驗結(jié)果證明:該系統(tǒng)所占用的面積縮小為原來的四分之一,,管腳數(shù)量減少了三分之一,,系統(tǒng)運行的速度也提高了。USB IP核的速度可以達到60MHz,,完全滿足設計要求,。
1 系統(tǒng)實現(xiàn)方案
1.1 系統(tǒng)結(jié)構(gòu)說明
本設計采用ALTERA公司的開發(fā)平臺,即在一塊ALTERA公司的Cyclone系列FPGA芯片上構(gòu)建SOPC系統(tǒng),。芯片內(nèi)部IP核的結(jié)構(gòu)示意圖如圖1所示,。
圖中,系統(tǒng)核心8051 IP核采用的是第三方的圖件,,遵守GPL協(xié)議的公開源代碼,,指令體系與標準的8051兼容,全同步設計,,并且通過修改包含了測試器接口,;源代碼由VHDL語言寫成,擁有良好的注釋及可擴展性,。其它IP核如UART IP核,、I2C IP核、USB IP核等都是自行設計的,;圖中總線采用的是WISHBONE片上總線,。
1.2 系統(tǒng)功能的實現(xiàn)
系統(tǒng)的主要功能是數(shù)據(jù)傳輸,。從圖1所示的結(jié)構(gòu)圖可見,內(nèi)部數(shù)據(jù)傳輸采用的是總線結(jié)構(gòu),,所有的設備都是通過總線進行數(shù)據(jù)傳送的,,因此設計的核心是總線數(shù)據(jù)傳輸。本文設計采用的是SILICORE公司的WISHBONE片上總線標準,。片上總線(On-Chip Bus,OCB)是實現(xiàn)SOC中IP核連接最常見的技術(shù)手段,,它以總線方式實現(xiàn)IP核之間的數(shù)據(jù)通信。與板上總線不同,,片上總線不用驅(qū)動底板上的信號和連接器,,使用更簡單,速度更快,。WISHBONE是一種主/從結(jié)構(gòu)的總線,,所有的IP核掛接在WISHBONE總線上,其規(guī)范是一種片上系統(tǒng)IP核互連體系結(jié)構(gòu),。本系統(tǒng)選取8051 IP核為主,,其它IP核為從,,主/從IP核通過握手信號使數(shù)據(jù)在WISHBONE總線上進行交換,。
下面詳細說明WISHBONE總線功能的實現(xiàn)。WISHBONE主設備核(8051 IP)與WISHBONE從設備核(USB IP核,、UART IP核,、I2C IC核等)端口信號連接圖如圖2所示,;主設備核讀取從設備核數(shù)據(jù)的時序示決圖如圖3所示。寫操作時序與之類似,。
WISHBONE連線示意圖中只畫出一個主設備核和一個從設備核,,實現(xiàn)情況可掛接多個主設備和從設備。本文采用了一主多從的結(jié)構(gòu),,即一個主設備核(8051 IP核)控制總線,,與多個從設備核(UART IP核、USB IP核等)進行數(shù)據(jù)傳輸,。WISHBONE總線連接線可分為:同步信號線CLK-I,;設備地址線ADR;主IP核到從IP核的數(shù)據(jù)輸出線DAT_O,,從IP核到主IP核的數(shù)據(jù)輸入線DAT_I,;控制線SEL、STB,、CYC,、ACK;附加線TAGN(用戶可以自行定義,,本文定義了定信號線WE),。
WISHBONE的數(shù)據(jù)傳輸由主設備控制,,采用握手信號STB-O和ACK-I控制傳輸過程,如圖4所示,。
以本文設計為例,,一個WSIHBONE總線讀周期的詳細過程可分解如下:
(1)運行8051匯編程序,8051 IP核(主IP核)使CYC-O為高,,表示8051 IP核占用總線,;同時送出SEL-O信號選取從設備核(SEL-O信號線電平定義從設備核地址;本文中UART IP核地址為0001,、I2C IP核地址為0010,、USB IP核地址為0101;假設SEL-O送出的信號線電平為0101,,即USB IP核被選中),,同時發(fā)出STB-O握手信號通知從設備核送出數(shù)據(jù)。
(2)USB IP核收到選中信號和STB激勵信號后,,把數(shù)據(jù)放在數(shù)據(jù)線上,,并送出ACK信號表明設備準備好。
(3)8051 IP核收到ACK信號,,從數(shù)據(jù)線上讀取數(shù)據(jù),。
(4)數(shù)據(jù)讀出后,8051 IP核把STB信號置低,,通知從IP核數(shù)據(jù)已讀出,。
(5)USB IP核收到STB低電平信號,,把ACK置低,,一個數(shù)據(jù)傳送周期結(jié)束。
寫周期與以上過程類似,,不同之處在于8051核收到ACK高電平信號后才把數(shù)據(jù)放在數(shù)據(jù)線上,,由從IP核來讀取。
2 系統(tǒng)設計方法與關鍵技術(shù)
2.1 系統(tǒng)設計方法
系統(tǒng)設計采用的核心工具軟件:設計輸入編程器及仿真工具——ActiveHDL6.1,,邏輯綜合工具——Synplify Pro 7.6結(jié)構(gòu)綜合工具——QuartusII v4.1,,仿真工具——Modelsim 6.0 SE。Active DHL+Synplify+Quartus I工具鏈提供了從源代碼輸入到FPGA實現(xiàn)整個流程的核心開發(fā)平臺,。
SOC的設計,、仿真和驗證確實是一個紛繁復雜的過程。在實際運行中,,采用IP核分別設計然后再整合在一起的方法來進行:先進發(fā)單個IP核,,仿真、下載到FPGA板進行測試,,所有的IP核均滿足設計要求后,,再掛接到WISHBONE總線上進行仿真與驗斑點,。由于整體仿真成功的幾率太小,而且每次仿真占用的時間太長,,因此設計中采用循序漸時的方法,。實際上,每個IP核都有自身的特殊性,,分別開發(fā)也是必然的,。例如開發(fā)USB IP核時,就要單獨開發(fā)主機端(PC機)驅(qū)動程序及8051匯編接口,。
2.2 關鍵技術(shù)
2.2.1 系統(tǒng)集成時仿真時間過長的解決
SOC的仿真一直是該技術(shù)實現(xiàn)中耗時最長的,。在用SOPC實現(xiàn)系統(tǒng)集成時,由于多個IP核集成后系統(tǒng)仿真時間延長,,占用了系統(tǒng)寶貴的開發(fā)時間,,而USB IP核仿真時占用時間最長,因此開發(fā)兩個模型:一個是USB HOST端的HDL行為模型,,這個模型模擬了一個真實HOST的行為過程,,如上電檢測、速度識別,、標準設備請求等過程,,并且可以檢測USB設備應答數(shù)據(jù)是否正確。另一個是8051 IP核的行為模型,,用于仿真8051核的行為,。把這兩個模型與USB IP連接,在Modelsim軟件包中進行仿真,。實驗證明效果很好,,與直接用IP核集成方式仿真相比,時間減少了80%以上,。
2.2.2 MC8051 IP核數(shù)據(jù)傳輸端口的選取
在考慮如何選取MC8051 IP核的數(shù)據(jù)傳輸端口時,,有兩種方案可供選擇:一種是利用四組8位并行I/O端口作為主設備(MASTER)數(shù)據(jù)傳送信號端口,它們的編程方式,、時序,、功能與8051單片機的四個并行口p0、p1,、p2,、p3相似;另一種方案是利用該核特有的用于與RAM存儲器傳送數(shù)據(jù)的端口作為主設備端口,;同時把RAM存儲器接在WISHBONE總線的從設備端口,,以使從設備與8051 IC核進行數(shù)據(jù)傳輸。后一種方案與前一種方案相比,優(yōu)點是當設備已經(jīng)被選中處于就緒狀態(tài)時,,只需要一條MOVX指令就可以完成對從設備的仿問(讀,、寫操作)。而第一種方案至少需要先通過并行I/O端口輸出地址,、再輸出數(shù)據(jù)或讀入數(shù)據(jù),,至少需要兩條以上傳送指令,增加了數(shù)據(jù)傳送時間,。通過對代碼的分析和仿真可以知道,,使用第二種方案大大提高了運行速度(約為前一種的三倍),同時方便了系統(tǒng)的開發(fā),。
2.2.3 系統(tǒng)軟件的運行方式
由于8051 IP核的指令執(zhí)行從ROM中的0地址開始,,因此需要把ASM5
1匯編程序先編譯生成HEX文件,再把這個文件與硬件一起綜合,、映射,、下載,這樣該HEX文件就可以作為初始文件保留在ROM中,,用來實現(xiàn)軟硬件協(xié)同仿真,。
2.2.4 仿真庫的選取
有些軟件包不含所有的FPGA器件的單元庫(Logic Cell Library),如ActiveHDL6.1,。因此仿真時常報庫單元不存在錯,。設計中采用的辦法是用Modelsim仿真,并且提前編譯好的仿真用的單元庫,。這樣就很好地完成了邏輯門級仿真和時序級(布局布線后)仿真,。
3 系統(tǒng)新增重要部分的設計及創(chuàng)新之處
由于水文測報的特殊性,常常需要傳送大容量的文件,,如圖片,、實時數(shù)據(jù)采集包等,同時有些數(shù)據(jù)需要備份,、上傳,。原單片機PCB板有UART,、I2C等通信功能塊,,本文的SOPC集成除了開發(fā)上述功能模塊IP核外,還增加了USB IP核的設計,。在實際測試中,,USB接口的使用大大提高了系統(tǒng)的數(shù)據(jù)傳輸速度,而且更方便,、更靈活,,大大提高了系統(tǒng)功能。
USB協(xié)議結(jié)構(gòu)復雜,,涉及的面很廣,,IP核的開發(fā)難度最大,,同時考慮到USB IP核在整個系統(tǒng)中的特殊性,下面將詳細說明USB IP核的設計與集成過程,。
3.1 USB IP核設計基本原理及框圖
USB IP核的設計原理圖如圖5所示,。USGB主控制器為USB主機端(通常安裝在計算機內(nèi)),負責主機與USB設備間的物理數(shù)據(jù)傳輸,,即將客房軟件啟動的數(shù)據(jù)傳輸轉(zhuǎn)化為USB總線上的實際串行數(shù)據(jù)流,,經(jīng)USB傳輸線傳輸。收發(fā)器將收到的數(shù)據(jù)轉(zhuǎn)換成數(shù)字CMOS串行數(shù)據(jù)流,,然后通過USB核控制邏輯傳輸?shù)皆O備端點(圖中的E0~E6),,最后通過DMA接口傳送到8051 IP核或存儲在SSRAM中。
按照USB協(xié)議,,USB提供三種速度傳輸模式:低速的1.5Mbps,、全速的12Mbps、高速的480Mbps,。根據(jù)設計要求,,USB IP核的傳送速率應當在全速以上。因此,,設計USB核時,,采用全速的USB設備標準,同時增設DMA接口和DMA控制器IP核,,以保證升級成高速設備時USB IP核的可復用性,。
實際上,USB IP核采用的主頻是48MHz,,而8051 IP核的時鐘只有12MHz,,兩者主頻不同,必然產(chǎn)生時鐘不同步問題,。由于8051核的主頻只有USB核的四分之一,,大大低于USB設備的速度,因此,,當數(shù)據(jù)傳送到設備端大大低于USB設備的速度,。當數(shù)據(jù)傳送到設備端點時,8051 IP核與USB IP核的通信將成為速度瓶頸,。
3.2 創(chuàng)新之處
為了解決速度問題和同步難點,,在8051 IP核與USB IP核端點之間,設置了兩個可轉(zhuǎn)換控制的緩沖區(qū)——BUF0和BUF1,,大小都等于USB最大包的大小,。數(shù)據(jù)流程如圖6所示。
這兩個緩沖區(qū)由一個標志寄存器控制,狀態(tài)控制器的值只有兩個:01或10,。01表示USB IP核邏輯控制BUF0緩沖區(qū),,8051 IP核通過DMA控制器操作BUF緩沖區(qū);反之,,值為10,,則BUF0由8051 IP核讀寫,BUF1由USB IP核邏輯操作,。
數(shù)據(jù)交換的過程如下:(1)初始化:復位后,,8051 IP核通過WINSHBONE總線預置數(shù)據(jù)到BUF0緩沖區(qū);(2)數(shù)據(jù)輸入:USB IP核端點讀入一個緩沖區(qū)數(shù)據(jù),,同時8051 IP核端口對另一個緩沖區(qū)數(shù)據(jù),;(3)數(shù)據(jù)輸出:USB IP核端點寫數(shù)據(jù)到一個緩沖區(qū),8051 IP核端口再從這個緩沖 區(qū)數(shù)據(jù),;兩者也可同時進行,,但具體實現(xiàn)十分復雜,在此不多討論,。
這么做的好處是:首先,,8051 IP核和USB IP核讀入時可以同
時操作,USB IP核不用等到8051核工作完成再進行下一步工作,,提高了速度:其次,,由于分開操作,時鐘不同步問題基本得到了解決,;再次,,如果想進下不提高芯片速度,例如要進行數(shù)據(jù)組的傳輸(一次與8051 IP核交換四組8位數(shù)據(jù)),,也會更加方便快捷,。
4 測試實驗結(jié)果
整個系統(tǒng)包括硬件平臺和軟件功能實現(xiàn)兩部分。硬件包括MCU核心系統(tǒng)和外圍輔助電路,。軟件包括程序調(diào)試器軟件,、8051 IP核網(wǎng)關功能程序包以及一部分IP核的PC驅(qū)動程序(如USB WINDOWS下的驅(qū)動程序)。整個系統(tǒng)測試包括硬件平臺測試和軟件功能測試,。
在硬件驗證時,,F(xiàn)PGA采用ALTERA公司CYCLONE系列的EP1C12Q240C8,雙時鐘頻率,,USB IP核時鐘頻率為48MHz,,其它部分(含MC8051)邏輯工作時鐘頻率為11.0592MHz,,實驗板為低成本雙層PCB板,。系統(tǒng)建立后實現(xiàn)了對MC8051定時器定時功能的驗證、UART模塊的驗證、USB數(shù)據(jù)包傳送的測試,、對中斷控制器的驗證,。
軟件測試主要是對8051核網(wǎng)關功能程序的測試。代碼下載到實驗板后對信道數(shù)據(jù)接收進行了200次試驗(以RF信道為例),。測試結(jié)果均符合“微機向前置機配置命令”所列各項命令的應答,,準確無誤,實現(xiàn)了水情數(shù)據(jù)可靠的接收,、存儲以及將數(shù)據(jù)上傳到后臺微機等功能,。圖6 SOPC技術(shù)以中硬件協(xié)同設計、具有知識產(chǎn)權(quán)的內(nèi)核(IP Core)復用和超深亞微米技術(shù)為支撐,,采用SOPC技術(shù)設計并實現(xiàn)的芯片是面向特定用戶的芯片,,它能最大程度滿足嵌入式系統(tǒng)的要求,與傳統(tǒng)的板上系統(tǒng)相比,,具有許多優(yōu)點:
①充分利用IP技術(shù),,減少了產(chǎn)品設計復雜性和開發(fā)成本,縮短了產(chǎn)品開發(fā)的時間,;
②單芯片集成電路可以有效地降低系統(tǒng)功耗,;
③減少了芯片對外引腳數(shù),簡化了系統(tǒng)加工的復雜性,;
④減少了外圍驅(qū)動接口單元及電路板之間的信號傳遞,,加快了數(shù)據(jù)傳輸和處理的速度;
⑤內(nèi)嵌的線路可以減少甚至避免電路板信號傳送時所造成的系統(tǒng)信號串擾,。
在本設計中由于采用了SOPC技術(shù),,整個系統(tǒng)的性能和穩(wěn)定性有了很大提高。因此,,SOPC技術(shù)及應用的特點決定它可以為復雜的板上系統(tǒng)提供了一種更高效更穩(wěn)定的解決方案,。