• 沒有找到結果。

第四章 SOPC 雛型系統軟硬體共同設計

4.2. ECG 雛型系統之硬體設計

圖 4.1. 雛型系統架構圖

本雛型系統以CSEP_SDK 為基礎的開發平台,搭配 Terasic (友晶 科技)彩色觸控板與 ECG 訊號擷取電路板(請參閱第四章),以 Altera Quartus II 為雛型系統之軟硬體共同設計開發環境。在硬體核心設計 上,先建立一Nios2 核心模組(如圖 4.1 所示),該核心模組具有 ADC DATA IN、SEG7、LTM、SD CARD 等週邊元件。同時在軟體設計上,

則以Altera Nios II IDE 為軟體開發平台進行程式設計。而本雛型系統 訊號輸入端為ADC 模組(即 AD7685),必須經由 Nios2 的 ADC DATA IN 來控制 ADC 模組,抓取其 ECG 訊號轉換資料並存進 SDRAM,

待SDRAM 儲存完畢後,由 LTM 模組顯示,或進行 ECG 訊號之時域 分析顯示,然後再依據使用者的需求決定是否儲存至SD 卡,以便日 後閱覽。

4.2.1. 建立 Nios2 Core Module

本系統的核心硬體架構之設計,以Altera Quartus II 來建置而成 的,其步驟如下:

步驟一:為了產生CPU 和 SDRAM 的 100MHz 和 LTM 的 40MHz 新增PLL,其設定方法如圖 4.2a~4.2d;

圖 4.2a. 新增 PLL

圖 4.2b. 設定 CPU 的 CLK (100MHz) Click”Output Clocks”

Select”clk_0”

Clock duty cycle(%)=50.00 Multiplication=2

Division=1

Phase Shift= 0.00 ps

圖 4.2c. 設定 SDRAM 的 CLK(100MHz,角度-65o)

圖 4.2d. 設定 LTM 的 CLK(40MHz) Click”Output Clocks”

Select”clk_2”

Clock duty cycle(%)=50.00 Enter out clock Frequency:40MHz

Click”Output Clocks”

Select”clk_1”

Clock duty cycle(%)=50.00 Multiplication=2

Division=1

Phase Shift= -65.00 deg

步驟二:NIOS2 必須有儲存單元,而新增 SDRAM Controller,其

Nios II/s(Standard):

高性能 Architecture:

Chip select = 1 Bands = 4

因為 CSEP_SDK 有兩顆 32MB

的SDRAM,所以在這的設定是

64MB 的參數。

步驟四:為了電腦能與NIOS2 溝通,而新增 JTAG,其設定方法如 圖 4.5;

圖 4.5. 設定 JTAG 參數

步驟五:為了將心電圖量測後的資料儲存至 SD CARD,而新增 SD Controller,其設定方法如圖 4.6;

圖 4.6. 新增 SD_Card_Controller IP CORE 使用預設值

使用預設值

步驟六:為抓取有效的 ADC 資料新增 ECG_ISR,其設定方法如圖 4.7;

圖 4.7. 新增 ECG_ISR

步驟七:為ADC 輸入端,新增 ECG_DATA,其設定方法如圖 4.8;

圖 4.8. 新增 ECG_DATA Width = 24 bits

Direction = Input port only Width = 1 bits

Direction = Input port only

Edge capture register:

Synchronously capture

→Rising edge

Interrupt:

Generate IRQ

→Edge

步驟八:控制ADC 轉換,而新增 ECG_FULL,其設定方法如圖 4.9;

圖 4.9. 新增 ECG_FULL

步驟九:判斷是否有觸碰到 LTM,而新增 TP_ISR,其設定方法如 圖4.10[16];

圖 4.10. 新增 TP_ISR Width = 1 bits

Direction = Input port only

Edge capture register:

Synchronously capture

→Rising edge

Interrupt:

Generate IRQ

→Edge Width = 1 bits

Direction = Output port only

步驟十:為接收觸控螢幕回傳的座標,而新增TP_DATA PIO 輸入 腳,其設定方法如圖4.11[16];

圖 4.11. 新增 TP_DATA

步驟十一:控制SDRAM 資料搬移,而新增 SGDMA Controller,

其設定方法如圖4.12a~圖 4.12b;

圖 4.12a. 設定 SGDMA Controller 參數 Transfer mode = Memory to Stream

Data width = 64 Source error width Data transfer FIFO depth = 2

Width = 24 bits

Direction = Input port only

圖 4.12b. SGDMA 與 SDRAM 連接示意圖

步驟十二:SDRAM 搬移時,需要暫存器,而新增 On-Chip Memory,

其設定方法如圖4.13;

圖 4.13. 設定 On-Chip Memory 參數 Depth = 128

Clock setting:

Dual clock mode

FIFO Implementation:

Construct FIFO from embedded memory block

Input: Output:

Avalon-ST Avalon-ST

Bits per symbot = 8 bits Symbols per beat = 8 symbols Error width = 0 bits

Channel width = 0 bits 將 SGDMA 與 SDRAM 連接

步驟十三:LTM 顯示需進行畫素轉換,而新增 Pixel Converter IP CORE,其設定方法如圖 4.14;

圖 4.14. 新增 Pixel Converter IP CORE

步驟十四:影像顯示控制設定,需新增VGA_SINK 來控制,其設 定方法如圖4.15[17];

圖 4.15. 新增 VGA_SINK IP CORE Parameters:

Symbols_Per_Beat = 1 Bits_Per_Symbol = 24 Ready_Latency = 0 Max_Channel = 0 H_Disp = 800 H_From_Porch = 40 H_Sync = 128 H_Back_Porch = 88 V_Disp = 600 V_From_Porch = 1 V_Sync = 4

V_Back_Porch = 23

步驟十五:設定IP 連接阜,其設定方法如圖 4.16a~圖 4.16f;

圖 4.16a. SGDMA 與 FIFO 連接示意圖

圖 4.16b. Insert Avalon-ST Adapters 1.選擇 SGDMA 的 OUT

2.Insert Avalon-ST Adapters SGDMA 連接至 FIFO

圖 4.16c. SGDMA 與 Avalon-ST Timeing Adapter 連接示意圖

圖 4.16d. Insert Avalon-ST Adapters

圖 4.16e. 重新命名 IP 名稱 Avalon-ST Timing Adapter(SGDMA to FIFO)

Rename:lcd_ta_sgdma_to_fifo

Avalon-ST Timing Adapter(FIFO to DFA) Rename:lcd_ta_fifo_to_dfa

Avalon-ST Data Format Adapter Rename:lcd_64_to_32_bits_dfa

1.選擇FIFO 的 OUT 2.Insert Avalon-ST Adapters

SGDMA 連接至Avalon-ST

Timeing Adapter

圖 4.16f. 重新設定 IP Clock 步驟十六:System Generation→Generate

步驟十七:新增Nios2 Core Module 至 Quartus II 專案,並新增各 IO PIN,並且完成腳位命名及連線操作,如圖 4.17 所示。

步驟十八:執行tcl 檔完成晶片及腳位規畫(請參見附錄 A.tcl 檔)。

步驟十九:Compilation 完成。

圖 4.17. Nios2 Core Module 建置完成圖 lcd_ta_sgdma_to_fifo

Clock:cpu_clk lcd_ta_pixel_fifo

Clock in:cpu_clk Clock out:vga_clk lcd_ta_fifo_to_dfa

Clock:vga_clk lcd_64_to_32_bits_dfa

Clock:vga_clk lcd_pixel_converter

Clock:vga_clk VGA

Clock:vga_clk

4.2.2. ADC Module

圖 4.18. ADC 範例電路

依圖4.18 所示[9],此為 AD7685 的範例電路,該 IC 本身分為 兩個模式,分別為3-WIRE 和 4-WIRE,而本文所採用的為 3-WIRE 模式,如圖4.19 所示[9],為本文採用之 3-WIRE 應用電路設計。

圖 4.19. ADC 3-WIRE 電路設計

3-WIRE 的電路設計是將 SDO 接一個提升電阻至 VIO,此模式 通常用於單一個AD7685 連接至 SPI 界面上,而它的控制時序圖,

如圖 4.20 所示,時序值請參考表 4-2[9],在控制上主要分為

Conversion 和 Acquisition 兩個狀態,當 CNV 由低準位轉成高準位 的同時,在正緣的時候,啟動轉換,此為Conversion 週期,過程中 不再受 CNV 的任何狀態控制,轉換時間至少要大於 tconv,直到轉 換結束前必須將訊號設定為 LOW,其目的主要是為了可以控制多 顆的ADC,而在轉換過程中的 SDO 均為高阻抗,當轉換時間大於 tconv立即從 Conversion 週期轉換到 Acquisition 週期,輸出的 SDO 由高阻抗轉換成低準位,並延遲一個SCK 的週期,在 SCK 第二個 週期開始,負緣對應到的 SDO 的資料為有效資料,且由 MSB→LSB 依序輸出,直到最後一筆資料送完後,再將 CNV 轉換成高準位,

完成一個AD 轉換。

圖 4.20. ADC 3-WIRE 時序圖

表 4-2. AD7685 時間表

Parameter Symbol Min Max Unit

Conversion Time tconv 2.2 2.4 us

Acquisition Time tACQ 1.6 us

Total Time tcyc 4 us

SCK (CS Mode) tsck 25 ns

Sample Rate 250 KHz

圖4.21~4.23 為 VHDL 撰寫完之後的模擬驗證圖(VHDL 程式 碼將附置於附錄B)。

圖 4.21. 輸入資料為”1000 0000 0000 0000”輸出資料為 8000H

圖 4.22. 輸入資料為”0000 0000 0000 0001”輸出資料為 0001H

圖 4.23. 輸入資料為”0000 0000 1000 0000”輸出資料為 0080H Conversion Time Acquisition Time Out Conversion Time Acquisition Time Out Conversion Time Acquisition Time Out

圖 4.24. 雛型系統硬體設計

圖 4.25. 雛型系統硬體資源使用統計

相關文件