基于NiosⅡ的嵌入式高速邏輯分析儀
1 引言
由于數(shù)字信號(hào)只有高電平和低電平兩種情況,因此,用單片機(jī) (MCU)就可直接實(shí)現(xiàn)多路數(shù)字信號(hào)進(jìn)行采集和邏輯分析。但由于單片機(jī)的時(shí)鐘頻率較低,完成一次采樣的時(shí)間受程序執(zhí)行指令速度的限制,采樣速率通常不超過 1MHz。因此,用單片機(jī)只能實(shí)現(xiàn)對(duì)低速率數(shù)字信號(hào)進(jìn)行邏輯分析。FPGA的工作時(shí)鐘速率通??蛇_(dá) 200MHz以上,可對(duì)高速數(shù)字信號(hào)進(jìn)行采樣,但普通的 FPGA在與外部設(shè)備進(jìn)行數(shù)據(jù)交換時(shí)顯得不靈活。為了解決上述問題,通常是將 MCU與 FPGA結(jié)合起來,用 FPGA對(duì)高速數(shù)字信號(hào)進(jìn)行采樣,用 MCU負(fù)責(zé)與外部設(shè)備進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)對(duì)高速數(shù)字信號(hào)進(jìn)行邏輯分析,如圖 1所示。
隨著可編程邏輯器件的發(fā)展,Altera公司研發(fā)了可以嵌入軟 CPU核的 Cyclone系列和 Stratix系列的 FPGA芯片。嵌入式軟核與普通硬核的昀大差別在于它的可裁減性,設(shè)計(jì)者可根據(jù)設(shè)計(jì)需求定制出不同結(jié)構(gòu)的軟核處理器。軟 CPU核的嵌入實(shí)現(xiàn)了 CPU與 FPGA的無縫連接,使芯片既能處理高速數(shù)字信號(hào),又能方便靈活地與芯片外部設(shè)備進(jìn)行數(shù)據(jù)交換,還增加了系統(tǒng)的集成度和可靠性。
2 定制軟 CPU核
軟核的定制要利用 Altera公司提供的 SOPC Builder軟件。
2.1定制 NiosⅡ處理器早期的軟核處理器是 Nios,但其穩(wěn)定性不夠好,現(xiàn)已被 NiosⅡ所替代。 NiosⅡ處理器有三種類型: e(經(jīng)濟(jì)型 )、s(標(biāo)準(zhǔn)型)和 f(增強(qiáng)型)。選擇不同類型的處理器所占用的邏輯資源和存儲(chǔ)器資源大小不同,處理器的運(yùn)算速度處理能力也有所差別。
2.2定制片內(nèi) RAM
片內(nèi) RAM作為軟核程序的運(yùn)行空間,對(duì)于沒有擴(kuò)展外部存儲(chǔ)器的設(shè)計(jì),片內(nèi) RAM是必須的部分。通過軟件設(shè)計(jì)向?qū)?,可以設(shè)置片內(nèi)存儲(chǔ)器的類型,大小,以及初始化文件。 Cyclone系列芯片有 13~64個(gè)片內(nèi) RAM塊,每個(gè) RAM塊的大小是 4K(128字×36位),用戶可根據(jù)需要設(shè)置存儲(chǔ)器的字?jǐn)?shù)和字長(zhǎng)。當(dāng)定義的字?jǐn)?shù)超過 128時(shí),多個(gè) RAM塊可組成在一起,構(gòu)成更大容量的存儲(chǔ)器,滿足設(shè)計(jì)要求。
2.3定制 UART接口
UART接口是軟核與計(jì)算機(jī)通信的主要接口,通過設(shè)計(jì)向?qū)Э啥ㄖ?UART接口。在定制 UART接口時(shí),可以設(shè)置其波特率,校驗(yàn)位,是否允許 DMA控制。通過此基本設(shè)置,軟核可以與 PC機(jī)之間實(shí)現(xiàn)串口通信的功能。
2.4定制 LCD控制端口和鍵盤控制端口此類端口是普通 I/O端口,設(shè)置比較簡(jiǎn)單。需要注意的是 LCD的數(shù)據(jù)端口是 8位的雙向端口。當(dāng)定制了以上 4部分后,即可生成軟 CPU核。
3 最小系統(tǒng)形成
完成定制軟核后,需要對(duì)軟核編程,形成基于軟核的昀小系統(tǒng)。
對(duì)軟核的編程在 Nios ⅡIDE環(huán)境下進(jìn)行。首先利用軟件生成針對(duì)某軟核的模版程序,用戶程序都可以從模版開始。在生成模版程序的同時(shí),也形成了 system.h文件,此文件中包含了對(duì)用戶編程有用的許多信息,包括所有端口的地址空間分配,中斷號(hào)等。在文件 altera_avalon_pio_regs.h中包含了對(duì)普通 I/O端口進(jìn)行讀寫操作的函數(shù),通過對(duì)函數(shù)的調(diào)用可實(shí)現(xiàn)對(duì)端口的操作。在文件 altera_avalon_uart_regs.h中包含了對(duì) UART操作的基礎(chǔ)函數(shù),對(duì)串口的所有操作,都可通過對(duì)此中函數(shù)的調(diào)用來完成。
在昀小系統(tǒng)中,實(shí)現(xiàn)軟核對(duì) LCD的數(shù)據(jù)交換,讀取鍵盤值,以及與計(jì)算機(jī)之間的通信。本設(shè)計(jì)鍵盤使用 4*4鍵盤,顯示器采用 240*128點(diǎn)陣 LCD顯示模塊。主要子程序流程圖如圖 2所示。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論