




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、西安歐亞學院本科畢業論文(設計)1 緒論1.1 技術背景嵌入式設備不僅可以單獨使用,還可以網絡連接方式使用。為實現網絡信息的高速處理,由于8/16位微處理器工作速度較難滿足要求,所以嵌入式設備往往采用32位RISC嵌入式處理器作為核心部件。然而其中ARM核嵌入式處理器的應用獨占鰲頭,它在32位RISC處理器市場上的占有率已經超過75%,使用ARM芯片構造嵌入式系統正成為嵌入式系統設計的一個非常重要的分支部分。ARM公司是知識產權供應商,其本身不生產芯片,靠轉讓設計許可,由合作伙伴公司來生產各具特色的芯片,世界著名半導體公司Intel、Philips、Atmel、ST、Analog Device
2、、TI、Samsung、OKI等都在生產ARM核嵌入式處理器,為嵌入式系統設計提供了豐富的選擇余地。近年來 ,隨著微電子技術、計算機科學技術、通信技術以及網絡技術的發展,嵌入式系統應用技術已經滲透到了各個領域。由于被嵌入對象的復雜度有非常大的變化范圍,及對嵌入式系統本身在其性能、體系結構等方面的多樣化要求,導致了嵌入式系統應用的多樣性。作為嵌入式系統核心的嵌入式微處理器必須應對嵌入式應用面臨的挑戰 ,而ARM(Advanced RISC Machines)嵌入式微處理器 ,以其完整的體系結構發展系列,以及耗電少,成本低,功能強,16位(Thumb)/32位(ARM)指令集等優點,在網絡、通訊、
3、信息家電、工業控制、航空航天等高端領域得到廣泛應用,如我們身邊的汽車電子、保安設備、無線通信、便攜式產品、數字機頂盒、游戲機、數碼相機、數字電視、GPS、智能手機等產品,就是嵌入式系統的典型應用。PHILIPS公司生產的32位ARM微控制器LPC2300系列微控制器,支持10/100 Ethernet、全速(12Mbps)USB 2.0和CAN 2.0 B;具有高達512KB的ISP/IAP Flash、58KB的SRAM10位A/D、D/A轉換器、IRC振蕩器、豐富的外設接口等,特別是SD存儲卡接口和I2S接口,在信息產品中得到廣泛應用。 1.2 選題意義目前,嵌入式系統的應用日益普及,遍及
4、各個應用領域,國際上形成了ARM公司領軍,為了進一步改善實驗教學手段,提高教學水平和科研創新能力,從08年開始,學院專門成立嵌入式系統研發小組,開發用于教學、工程應用的型多功能用戶板。09年3月,針對型用戶板存在的問題,本著“完善設計、擴展功能”的設計思路,又開發設計了型多功能用戶板,包括:8位、16位、32位多功能用戶板;從2010年又承擔了省教育廳的嵌入式系統培訓基地項目,開發功能更多、更高端的嵌入式系統教學設備。35I2S總線是飛利浦公司為數字音頻設備數據傳輸而制定的一種總線標準,廣泛應用于各種多媒體系統。在各種聲卡中,大部分聲卡的AD、DA芯片使用的都是這種總線,能方便的實現與帶有I2
5、S總線的AD、DA芯片相連接。聲卡既可以用來播放聲音,也可以用來錄音,這相當于我們的DA和AD,事實上,直接利用I2S我們能做的工作遠不止這些,包括可以進行數據通訊的操作等。我選擇基于ARM的數字音頻處理與播放系統的設計的題目,希望通過對嵌入式的學習,能為日后的運用打下良好的基礎。1.3 本課題的設計思路本題目是基于ARM的LPC2378多功能用戶板進行設計開發的。在IAR開發環境中,將主機與JTAG相連,通過傳輸線接到目標板上,在I2S接口的連接下,直接將數據信號傳輸到音頻外設中。連接方式如圖1-1所示:圖1-1 整體連接方式2 各功能模塊的介紹2.1 LPC2378的介紹LPC2378芯片
6、是飛利浦公司生產的的32位ARM核芯片,是目前廣泛應用的主流芯片之一。2.1.1 技術特性具有512KB片內Flash和58KB的SRAM存儲器,工作主頻72MHz;具有在系統編程(ISP)和在應用編程(IAP)功能,每256字節編程僅需1ms,整片擦除只需400ms。LPC2378包含1個10/100 Ethernet MAC接口、1個USB 2.0全速(12Mbps)設備、2路CAN 2.0B通道、1個通用DMA控制器、8個通用10位A/D轉換器和1個10位的D/A轉換器。Ethernet MAC在獨立的AHB總線上有16KB的SRAM和一個相關的DMA控制器。USB控制器含有4KB的US
7、B SRAM和可存取的DMA,并支持32個端點的控制、中斷、批量和同步數據傳輸模式。因此豐富的串行通信接口增強了設計的靈活性,提供了更大的緩沖區,以及具有更高的處理能力。LPC2378有4個UART(1個帶有IrDA)端口、3個I2C總線接口、3個SPI/SSP接口和1個I2S接口。此外,LPC2378還含有1個SD/MMC存儲卡接口。LPC2378具有4個32位捕獲/比較定時器。1個用于三相電機控制的PWM單元;1個帶有2KB電池SRAM的低功耗實時時鐘;1個看門狗定時器和1個可用作主系統時鐘的4MHz內部RC振蕩器。LPC2378的每個外設都具有一個獨立的時鐘分頻器,可實現低功耗設計;并且
8、,P0口和P2口的每個管腳都可用作外部中斷管腳;微控制器中有104個通用I/O口線,每個口線可在高達18MHz的速率下觸發。LPC2378支持實時仿真和嵌入式跟蹤支持,采用標準的ARM測試/調試JTAG接口,可方便實現芯片開發。2.1.2 LPC2378芯片結構在本次的設計中,用到LPC2378這個芯片,其芯片結構如圖2-1所示:圖2-1 LPC2378整機結構圖 LPC2378芯片結構如上圖所示,它包含一個支持仿真的 ARM7TDMI-S CPU,片內存儲器控制器接口的ARM7局部總線,中斷控制器接口的AMBA高性能總線(AHB)和連接片內外設功能的外設總線(VPB,ARM AMBA總線的兼
9、容超集)。LPC2378將 ARM7TDMI-S處理器配置為小端(little-endian)字節順序。AHB外設分配了2M字節的地址范圍,它位于4G字節ARM存儲器空間的最頂端。每個AHB外設都分配了16k字節的地址空間。LPC2378 的外設功能(中斷控制器除外)都連接到VPB總線。AHB到VPB的橋將VPB總線與AHB總線相連。VPB外設也分配了2M 字節的地址范圍,從3.5GB地址點開始。每個VPB 外設在VPB地址空間內都分配了16k字節地址空間。2.2 I2S的介紹2.2.1 I2S總線規范音響數據的采集、處理和傳輸是多媒體技術的重要組成部分。眾多的數字音頻系統已經進入消費市場,例
10、如數字音頻錄音帶、數字聲音處理器。對于設備和生產廠家來說,標準化的信息傳輸結構可以提高系統的適應性。I2S(InterIC Sound)總線是飛利浦公司為數字音頻設備之間的音頻數據傳輸而制定的一種總線標準,用于音頻設備之間的數據傳輸,廣泛應用于各種多媒體系統。它采用了沿獨立的導線傳輸時鐘與數據信號的設計,通過將數據和時鐘信號分離,避免了因時差誘發的失真,為用戶節省了購買抵抗音頻抖動的專業設備的費用。I2S總線擁有三條數據線進行數據傳輸:一條雙向數據傳輸線,一條命令(聲道)選擇線和一條時鐘線。在數據傳輸過程中,發送端(transmitter)和接收端(receiver)具有相同的時鐘信號,發送端
11、作為主機(Master)時,產生位時鐘信號,命令(聲道)選擇信號和數據。2.2.2 I2S總線的信號I2S總線具有3個信號,分別是SCK、WS和SD信號:1. 串行時鐘SCK信號,也叫位時鐘(BCK),即每發送1位數字音頻數據,SCK上都有1個脈沖。SCK的頻率=2×采樣頻率×采樣位數。在數據傳輸過程中,I2S總線上的發送器和接收器都可以作為系統的主機來提供系統的時鐘頻率;2. 幀時鐘WS信號,即命令(聲道)選擇,用來切換左右聲道的數據。WS的頻率為采樣頻率,由系統主機提供。WS為“0”表示傳輸左聲道的數據,WS為“1”表示傳輸右聲道的數據;3. 串行數據信號SD信號,用來
12、傳輸二進制補碼表示的音頻數據。I2S傳輸格式規定:數據最高位(MSB)總是被最先傳輸,而1次能夠發送的數據取決于I2S格式的有效位數。2.2.3 I2S信號時序圖2-2 信號時序圖1. SCK是模塊內的同步信號,從模式時由外部提供,主模式時由模塊內部自己產生。在I2S總線中,任何設備都能通過提供必需的時鐘信號成為系統的主導裝置,但是從屬裝置通過外部時鐘信號來得到它的內部時鐘信號,這也就是表明必須重視主導裝置和數據以及命令選擇信號之間的傳播信號延遲,總的延遲主要由兩部分組成: l 外部時鐘和從屬裝置的內部時鐘之間的延遲;l 內部時鐘和數據信號以及命令選擇信號之間的延遲。 對于數據和命令信號的輸入
13、,外部時鐘和內部時鐘的延遲不在占主導地位,它只是延長了有效的建立時間(setup time)。延遲的主要部分是由發送端的傳輸延遲和設置接收端需要的時間。 T是時鐘周期,Tr是允許最小時鐘周期,T>Tr只有這樣發送端和接收端才能滿足數據傳輸速率的要求。 對所有的數據速率來說,發送端和接收端都能發出一個具有固定的傳號空號比(markspace ratio)的時鐘信號,所以tLC和tHC是由T所定義的。 tLC和tHC必須大于0.35T,這樣信號在從屬裝置端就可以被檢測到。 延遲(tdtr)和最快的傳輸速度(由Ttr定義)是相關的,快的發送端信號在慢的時鐘上升沿可能導致tdtr不能超過tRC而
14、使thtr為零或者負。只有tRC不大于tRCmax的時候(tRCmax>0.15T),發送端才能保證thtr大于等于0。 為了允許數據能夠在下降沿被記錄,時鐘信號上升沿及T相關的時間延遲應該給接收端充分的建立時間(set-up time)。 數據建立時間(set-up time)和保持時間(hold time)不能小于指定接收端的建立時間和保持時間。 2. WS是聲道選擇信號,表明了數據發送端所選擇的聲道,當:l WS0,表示選擇左聲道;l WS1,表示選擇右聲道。 WS可以在串行時鐘的上升沿或者下降沿發生改變,在從機端,WS在時鐘信號的上升沿發生改變。 SD是串行數據,在I2S中以二進
15、制補碼的形式在數據線中傳輸,首先傳輸最高位(MSB)。不管I2S格式的信號有多少位有效數據,數據的最高位一直出現在LRCK變化(也就是一幀開始)之后的第2個SCLK脈沖處。因此可以使得接收端與發送端的有效位數可以不同。假如接收端能處理的有效位數少于發送端,那么可以放棄數據幀中多余的低位數據;假如接收端能處理的有效位數多于發送端,則可以自行補足剩余的位。這種同步機制能夠使得數字音頻設備的互連更加方便,也不會造成數據之間錯位。 I2S具有不同的數據傳輸格式。根據SDATA數據相對于LRCK和SCLK的位置不同,分為左對齊(很少使用)、I2S格式和右對齊(也叫日本格式、普通格式)。為了保證數字音頻信
16、號的正確傳輸,發送端和接收端應該采用相同的數據格式和長度,I2S格式的數據長度可以不同。 當系統字長比數據發送端字長長的時,數據傳輸的時候就會出現截取的現象,也就是說:如果接收端接收的數據位大于規定字長的話,則規定字長最低位(LSB)以后的所有位將會被忽略;另一方面,假如接收的字長比它規定的字長短的話,則空余出來的位將會以0填補。通過這種方式可以使音頻信號的最有效位得到傳輸進而能保證正確的聽覺效果。2.2.4 工作模式I2S總線的工作模式,可根據數據流向和控制時鐘源分類:從數據的接收和發送的角度來說,它可以分為接收端(Transmitter)和發送端(Receiver)。根據時鐘信號和聲道選擇
17、信號源模式,的產生的角度來說,它又可以分為主機(Master)和從機(Slaver)。I2S就存在以下三種不同的模式,其中產生時鐘信號和聲道選擇信號的是主機。數據接收端產生SCK、WS信號的為主機,從而數據傳輸端成為從機,可以進行錄音,如圖2-3所示:圖2-3 I2S的工作模式一 當有多個數據接收端和多個數據傳輸端的時候,很難確定誰是主機,因此就出現了另一種模式,即一個控制器專門負責產生時鐘和聲道選擇信號。如圖2-4所示:圖2-4 I2S的工作模式二l 在I2S傳輸協議中,其數據信號、時鐘信號以及控制信號是分開傳輸的;l 使用三條傳輸線:串行數據線(SD)、左右聲道選擇線(WS)、同步時鐘信號
18、線(SCK)。2.2.5 I2S的傳輸模式I2S總線接口有3種傳輸模式:正常傳輸模式、DMA傳輸模式和傳輸/接收模式。1. 正常傳輸模式I2S控制寄存器中有一個FIFO預備標志位(ready flag bite)用于FIFO發送和接收,當FIFO準備好發送數據,如果發送FIFO非空,FIFO狀態(準備好)標志將被設置為1;如果發送FIFO為空,FIFO狀態標志設為0;當FIFO接收滿,接收FIFO狀態標志被設置為0,這些標志可以決定CPU讀寫FIFO的時間。串行數據就是通過這種方式被發送或接收的。2. DMA傳輸模式當DMA傳輸模式中,I2S的發送和接收FIFO操作都是由DMA控制器完成,在發
19、送和接收模式中,由FIFO準備好標志來自動產生DMA服務請求。3. 傳輸/接收模式這種模式下,I2S數據可以同時發送和接收音頻數據。2.3 音頻模塊2.3.1 音頻模塊的介紹 音頻模塊采用的是硬件平臺中的SSI接口控制CS4340,進行音頻的播放。SSI接口是同步串行接口,它有獨立的發送器、時鐘發生器和楨同步功能的接收器。24位高質量立體聲CODEC芯片CS4340用于音頻的DAC。文件數據由同步串行接口讀入芯片CS4340,芯片按組(包含左右聲道)進行數據的轉換,再由左右聲道輸出,其輸出在音頻運算放大器的作用下,可以提供立體聲驅動輸出。在此次設計中,把整個設計分成3個模塊:控制模塊;數據發送
20、模塊;數據接收模塊。數據發送和接收模塊都工作于從模式,分別可以獨立工作,通過控制模塊的控制處于不同的狀態。2.3.2 模塊的連接關系整個設計中,控制模塊、數據發送模塊、數據接收模塊的連接關系如下圖2-5所示。 圖2-5 各模塊的連接模式圖2.3.3 控制模塊的設計控制部分主要是通過TX_RX_SEL和MA_SL_SEL信號來決定是自己產生 SCK和WS,還是接收總線上的SCK和WS。外部時鐘信號(CLK)、復位信號(RESET)用來控制整個系統所處狀態和實現系統復位。從外部引入的系統時鐘信號(CLK)由晶振產生,本設計中使用的晶振頻率是18.432MHz,故系統時鐘頻率為18.432MHz。主
21、模式中,系統時鐘經過分頻處理后,生成I2S的內部傳輸時鐘SCK和聲道選擇信號WS。本次設計中使用的聲音的采樣頻率為48kHz,則聲道選擇信號WS的頻率必須也為48kHz。由于傳輸左右2個聲道的數據為16 bit,故SCK的頻率為:48kHz×16×21.536MHz。如果需要傳輸20 bit、24 bit或32 bit的左右聲道的數據,可以提高SCK的頻率,由上式可以計算出需要的SCK的頻率。根據WS、SCK與系統時鐘頻率的關系,可以得出由系統時鐘頻率產生WS和SCK的分頻系數。2.3.4 控制模塊中雙向端口的設計在控制模塊中SCK、WS、SD信號都是輸入輸出雙向端口,根據
22、外部信號TX_RX_SEL 、MA_SL_SEL信號的控制,決定端口的輸入輸出方向。如下圖2-6所示:圖2-6 TX_SD向外發送數據圖當TX_SD向外發送數據時,TX_RX_SEL為高電平,輸出緩沖打開,去驅動外部的SD,而另一端則關閉輸入緩沖,令緩沖輸入到內部RX_SD上的電平為高阻態。圖2-7 RX_SD接收外部數據圖 當RX_SD接收外部數據時,TX_RX_SEL為低電平,輸入緩沖打開,接收外部SD的數據,另一端則關閉輸出緩沖,令輸出到外部SD上的電平為高阻態。 通過上面的設計,就可以保證在某一時刻只有一端在驅動總線,而不會造成數據沖突。2.3.5 數據發送模塊的設計在這個設計中,數據
23、的發送模塊是一個非常重要的模塊,模塊圖如下圖2-8所示。圖2-8 數據的發送模塊圖2.3.6 各信號的時序關系SCK是時鐘信號,WS是片選信號,SD是數據信號,它們的時序關系如圖2-9所示。圖2-9 信號的時序關系圖2.3.7 數據接收模塊的設計與數據發送模塊相對應的是數據接收模塊。其設計如圖2-10所示。 圖2-10 數據的接收模塊圖WS 信號的產生方式與發送模塊一樣。計數模塊的計數值在本設計中為模16,當計數達到16時,EN信號變成低電平,使計數器停止計數,同時也使串并轉換模塊停止接收數據。WS、SCK、SD信號的進入同樣需要經過RX_EN信號的使能來決定與控制模塊的連接或斷開。3 開發環
24、境及工具3.1 開發環境IAR EWARM3.1.1 簡介IAR公司是全球領先的嵌入式系統開發工具的公司,其中完全集成了開發嵌入式系統所需要的C/C+編譯器、匯編器、鏈接器、文件管理器、文本編輯器、工程管理器。IAR公司獨具特色的C-SPY調試器,不僅可以在系統開發初期進行無目標硬件的純軟件仿真,而且可以結合IAR公司推出的J-Link硬件仿真器,實現用戶系統的實時在線仿真調試。IAR的Embedded Workbench系列源級瀏覽器(Source Browser)功能利用符號數據庫使用戶能快速瀏覽源文件,也可以通過詳細的符號信息來優化變量存儲器。文件查找功能可以在指定的某些種文件中進行全局
25、文件的搜索。并且提供了對第三方工具軟件的接口,允許用戶啟動指定的應用程序。IAR無縫集成了所有必要組件,確保開發的流程流暢而不間斷。開發環境的界面如下圖3-1所示: 圖3-1 IAR開發環境界面圖上圖中是對程序編譯成功后,進行下載和調試后產生的界面。展現的窗口分別是:工程窗口、反匯編窗口、寄存器窗口、符號寄存器、局域窗口、存儲器窗口。3.1.2 IAR的主要特性1. 頂目管理特性IAR EW 是一個能夠支持多種微處理器開發的集成開發環境,針對用戶特定的目標系統,用創建項目的方式來進行管理和開發,其項目管理功能強大,用戶只要創建一個工作區(Workspace),就可以在其中開發一個或多個項目。各
26、個項目中可以包含不同的組(Group)和文件(File)模塊,并且可以為每個項目進行選項設置。在項目開發過程中任何修改都會被記錄,從而保證修改設計時可以獲得所有需要的模塊。通過目標創建(Make)選項可以很方便地實現對一個IAR EW 項目進行完整的編譯和鏈接,直接產生最終的應用目標文件,而且可執行文件中不包含已過期的模塊。2. 調試器特性IAR C-SPY 調試器是IAR公司專門為嵌入式系統應用開發的一種高級語言調試器。IAR C-SPY 調試器使用戶能進行C/C+和匯編語言源代碼調試、反匯編調試或二者混合調試。采用源代碼調試是驗證用戶應用程序邏輯性正確與否的最快捷、最便利的方式;而反匯編調
27、試則針對應用程序的錯誤段,并對硬件進行精確控制。在混合顯示模式中,調試器顯示相應的C/C+源代碼及其它對應的反匯編代碼清單。3. C/C+編譯器特性。IAR C/C+編譯器提供靈活的變量分配能力,可直接采用C/C+語言編寫中斷函數,具有針對不同CPU保持可移性的“#pragma”編譯命令,支持IAR 擴展嵌入式C+特性,例如模板、名稱空間、多重虛擬外設、固定操作符(static_cast、const_cast和reinterpret_cast)以及標準模板庫(STL)等。支持特殊目標語言的擴展,例如特殊函數的輸入、擴展關鍵字、指示、預設標志、同步函數等。IAR C/C+編譯器運行速度快,采用面
28、向存儲器的設計避免了暫存文件及覆蓋技術。編譯時進行嚴格的擴展類型檢查,鏈接時進行嚴格的模塊接口類型檢查。IAR C/C+編譯器采用最優化技術產生高效的目標代碼,可選擇以代碼大小或速度快慢進行目標代碼優化。多種輸出格式選擇,有重定位二進制、匯編源代碼和可選的匯編器列表文件等。提供容易理解的錯誤和警告信息。生成與C-SPY高級調試兼容的擴展調試信息。4. 匯編器特性IAR 匯編器是一種功能強大的可重定位的宏匯編器,支持Intel/Motorola格式的宏,并且含有多種指示符和表達式。它具備一個內部C語言預處理器,支持條件匯編,與其他IAR系統軟件一起集成在IAR EW 環境之中。3.1.3 集成開
29、發環境的界面特色1. 分層次的工程組織;2. 同一工作空間中允許存放多個工程;3. 可停靠的窗口和多視圖;4. 源代碼瀏覽;5. 創建和維護庫的工具; 6. 可以和源代碼控制系統相集成; 7. 文本編輯器。3.2 JTAG的基本原理3.2.1 JTAG簡介H-JTAG 是一款簡單易用的的調試代理軟件,功能和流行的MULTI-ICE 類似。H-JTAG 包括兩個工具軟件:H-JTAG SERVER 和H-FLASHER。其中,H-JTAG SERVER 實現調試代理的功能,而H-FLASHER則實現了FLASH 燒寫的功能。常見的JTAG有:H-JTAG、J-LINK、FTDI等。H-JTAG
30、的基本結構圖和實物圖如下圖3-2所示:圖3-2 H-JTAG 軟件結構圖3-3 H-JTAG實物圖3.2.2 性能介紹JTAG是一種很先進的嵌入式系統開發設備,遵從國際標準測試協議。主要用于芯片內部測試及對系統進行仿真、調試。JTAG的主要功能可以分為兩大類:一類用于測試芯片的電氣特性,用來檢測芯片是否有問題;另外一類用于Debug,起到對各類芯片以及其外圍設備進行調試的作用。其中一個含有JTAG Debug接口模塊的CPU,若時鐘正常,則可以通過JTAG接口訪問CPU的內部寄存器、掛在CPU總線上的設備以及內置模塊的寄存器。JTAG的工作原理為:在器件內部定義一個TAP,通過專用的JTAG測
31、試工具對內部節點進行測試和調試。H-JTAG支持所有基于ARM7 和ARM9的芯片的調試,而且支持大多數主流的ARM調試軟件,如ADS、RVDS、IAR和KEIL。通過這些靈活的接口配置,H-JTAG 可以支持WIGGLER,SDT-JTAG 和用戶自定義的各種JTAG 調試小板。而且,附帶的H-FLASHER 燒寫軟件還支持常用片內片外FLASH 的燒寫。使用H-JTAG,用戶能夠方便的搭建一個簡單易用的ARM 調試開發平臺。3.2.3 H-JTAG調試/燒寫結構H-JTAG 支持ARM 公司的RDI 接口。通過RDI 接口,H-JTAG 能夠支持大多數主流的ARM 調試軟件。調試的結構如圖
32、3-4所示:圖3-4 H-JTAG 調試結構圖調試軟件(AXD/RVDS/IAR/KEIL)通過RDI 接口與H-JTAG SERVER 進行交互。H-JTAG SERVER通過與并口相連的 JTAG調試板控制目標調試板。H-JTAG還提供了靈活的JTAG接口設置。通過設置,H-JTAG能支持不同類型的JTAG 調試板,例如流行的WIGGLER和SDT-JTAG,用戶也可以根據自己的需要使用自定義的JTAG 調試板。除了調試,用戶還可以通過H-FLASHER將程序和數據燒寫/下載到FLASH芯片中去。目前,H-FLASHER支持的常見的片內和片外FLASH芯片。由于軟件的更新和升級,H-FLA
33、SHER支持的芯片類型也會不斷的增加。在進行FLASH 燒寫時,H-FLASHER 與H-JTAG SERVER的連接如下圖3-5所示:圖 3-5 H-FLASHER 與H-JTAG SERVER 的連接圖燒寫 FLASH時,H-FLASHER與H-JTAG 的連接交互和在調試時候的情況十分類似。H-FLASHER通過RDI接口與H-JTAG SERVER進行交互,來訪問和控制目標開發板。根據用戶提供的配置文件,H-FLASHER最終完成FLASH 燒寫工作。3.2.4 JTAG連接及其應用通過JTAG串口線將PC機與ARM板連接起來,如圖3-6所示。圖3-6 JTAG的連接圖3.2.5 H-
34、JTAG 菜單介紹1. FILE 菜單,如圖3-7所示:圖3-7 H-JTAG FILE 菜單EXIT 退出H-JTAG。2. OPERATIONS 菜單,如圖3-8所示:圖3-8 H-JTAG OPERATIONS菜單RESET TARGET 復位調試目標;DETECT TARGET 檢測調試目標;KILL CONNECTION 斷開當前連接。3. FLASHER 菜單,如圖3-9所示:圖3-9 H-JTAG FLASHER 菜單START FLASHER 啟動 H-FLASHER;AUTO DOWNLOAD 啟用/禁用自動FLASH 下載。4. SCRIPT 菜單,如圖3-10所示:圖3-
35、10 H-JTAG SCRIPT 菜單INIT SCRIPT 設置初始化腳本;AUTO INIT 啟用/禁用自動初始化。5. SETTINGS 菜單,如圖3-11所示:圖3-11 H-JTAG SETTINGS 菜單JTAG SETTINGS JTAG 設置;PORT SETTINGS 并口設置;TARGET SETTINGS 調試目標設置;TARGET MANAGER 芯片 ID 管理器;TAP CONFIGURATION TAP 設置。6. OPTIONS 菜單,如圖3-12所示:圖3-12 H-JTAG OPTIONS 菜單OPTIONS WINDOW 打開選項設置主窗口;DISABLE
36、 SEMIHOSTING 禁用 SEMIHOSTING 功能;DISABLE VECTOR CATCH 禁用中斷向量捕獲功能;AUTO SYSTEM RESET 啟用/禁用自動系統復位;REPORT DATAABORT 報告數據異常。3.2.6 H-JTAG 工具欄介紹H-JTAG 工具欄包括了菜單中使用頻率比較高的大部分操作,方便用戶使用。H-JTAG 的工具欄如下圖3-13所示:圖3-13 H-JTAG工具欄工具欄上每個按鈕的功能定義如下: 復位調試目標; 檢測調試目標; 斷開當前連接; 啟動 H-FLASHER; 設置初始化腳本; 調試目標設置; 芯片ID管理器; JTAG 設置; 并口
37、設置; 打開選項設置窗口; 退出 H-JTAG。3.2.7 JTAG的調試界面圖3-14 調試界面一圖3-15 調試界面二圖3-16 調試界面三以上三張圖即為JTAG的調試和參數的設置,然后點擊load,選擇lpc2378.hfc,即完成了對JTAG的基本設置。但是不同的參數設置對本設計的進行有著不同的影響,所以,一旦在設計中出現因為參數設置的影響而導致在調試中出現問題,就先要想到在這些調試界面上修改參數。4 系統設計 4.1 硬件設計4.1.1 電路圖通過對系統軟件部分的實現,程序能正常的運行出來,現將本次系統設計的硬件部分進行分析,其電路原理圖如圖4-1所示。圖4-1 硬件設計電路圖4.1
38、.2 簡單說明基于上圖4-1所示,AK4343是一音頻模塊,管腳11,13,14分別是I2S控制及數據總線的串行數據信號SD信號,幀時鐘WS信號,串行時鐘SCK信號。管腳23,24指的是音頻信號可以進行線路輸入,即對數字音頻進行錄音。管腳19,20指的是可以通過喇叭對音頻信號進行輸出。管腳31,32指的是音頻信號可以通過DAC輸出。芯片的左邊即管腳15,16,21,22是加入的數字電源。芯片的右邊即管腳2,3,4是加入的模擬電源。4.2 軟件設計4.2.1 底層程序設計底層程序設計實際上就是ARM核的初始化,在任何程序設計中,底層程序的設計是必須要完成的。以下所提到的流程圖和源程序都是部分流程
39、圖和部分源程序。4.2.2 核初始化流程圖圖4-2 核初始化流程圖4.2.3 部分程序源代碼void TargetResetInit(void) /* 存儲器加速模塊配置*/ MAMCR = 0; / 存儲器加速控制器禁用#if Fcclk < 20000000 / 條件語句:若系統時鐘小于20M時 MAMTIM = 1; / 存儲器加速功能模塊部分使能#else / 否則#if Fcclk < 40000000 / 條件語句:若系統時鐘小于40M時 MAMTIM = 2; / 存儲器加速功能模塊全部使能#else / 否則 MAMTIM = 3; / 不采用存儲器加速功能#end
40、if #endif MAMCR = 2; / 使能存儲器加速模塊全部功能#if USE_USB PCONP |= 0x80000000; / USB時鐘使能#endif /* 系統各外設時鐘選擇 */#if (Fpclk / (Fcclk / 4) = 1 / 條件語句:若滿足 (Fpclk / (Fcclk / 4) = 1 PCLKSEL0 = 0x00000000; / 則外設時鐘設置:系統時鐘(Fcclk) = 4倍的外設時鐘(Fpclk) PCLKSEL1 = 0x00000000;#endif / 結束條件語句#if (Fpclk / (Fcclk / 4) = 2 / 條件語句:
41、若滿足 (Fpclk / (Fcclk / 4) = 2 PCLKSEL0 = 0xAAAAAAAA; / 則外設時鐘設置:系統時鐘= 2倍的外設時鐘 PCLKSEL1 = 0xAAAAAAAA;#endif / 結束條件語句#if (Fpclk / (Fcclk / 4) = 4 / 條件語句:若滿足 (Fpclk / (Fcclk / 4) = 4 PCLKSEL0 = 0x55555555; / 則外設時鐘設置:系統時鐘=外設時鐘 PCLKSEL1 = 0x55555555;#endif / 結束條件語句 /* PLL(鎖相環)配置,并從內部時鐘(IRC)切換至主振蕩器(OSC) */
42、ConfigurePLL(); /* GPIO初始化 */ GPIOResetInit(); /* 向量中斷管理器(VIC)初始化 */ init_VIC(); return; / 函數返回void ConfigurePLL ( void ) DWORD MValue, NValue; / 變量定義 if ( PLLSTAT & (1 << 25) ) / PLL連接判跳:若連接 PLLCON = 1; / 則,PLL使能 PLLFEED = 0xaa; / 饋送寄存器順序賦值:0xaa PLLFEED = 0x55; / 饋送寄存器順序賦值:0x55 PLLCON = 0
43、; / 否則,PLL禁用 PLLFEED = 0xaa; / 饋送寄存器順序賦值:0xaa PLLFEED = 0x55; / 饋送寄存器順序賦值:0x55 SCS |= 0x20; / 晶體振蕩器(OSC)使能 while( !(SCS & 0x40) ); / 等待晶體振蕩器(OSC)穩定 CLKSRCSEL = 0x1; / 選擇晶體振蕩器(OSC,12M)作為PLL時鐘源 PLLCFG = PLL_MValue | (PLL_NValue << 16); / PLL倍頻/分頻系數設置 PLLFEED = 0xaa; / 饋送寄存器順序賦值:0xaa PLLFEED
44、= 0x55; / 饋送寄存器順序賦值:0x55 PLLCON = 1; / PLL使能 PLLFEED = 0xaa; / 饋送寄存器順序賦值:0xaa PLLFEED = 0x55; / 饋送寄存器順序賦值:0x55 CCLKCFG = CCLKDivValue; / 設置系統時鐘(CCLK)分頻值:1,3,5.255 #if USE_USB / 若應用USB模塊 USBCLKCFG = USBCLKDivValue; / USB時鐘設置:usbclk=288 MHz/6=48 MHz #endif / 結束條件語句 while (PLLSTAT & (1 << 26)
45、 = 0); / PLL鎖定檢驗:未鎖等待 MValue = PLLSTAT & 0x00007FFF; / PLL倍頻設置 NValue = (PLLSTAT & 0x00FF0000) >> 16; / PLL分頻設置 while (MValue != PLL_MValue) && ( NValue != PLL_NValue) ); /倍頻/分頻值達標等待 PLLCON = 3; / 使能并連接PLL PLLFEED = 0xaa; / 饋送寄存器順序賦值:0xaa PLLFEED = 0x55; / 饋送寄存器順序賦值:0x55 while
46、( (PLLSTAT & (1 << 25) = 0) ); / 等待PLL連接 return; / 返回4.2.4 I2S程序流程圖 圖4-3 主環路流程圖圖4-4 I2S初始化流程圖4.2.5 I2S程序源代碼 static DWORD i; /變量定義 TargetResetInit(); / 核初始化 /* Configure temp register before reading 發送/接收緩存寄存器配置 */ for ( i = 0; i < BUFSIZE; i+ ) / 清緩存器 I2STXBufferi = i; / 發送緩賦值 I2SRXBuff
47、eri = 0; / 接收緩清零 if ( I2SInit() = FALSE ) / I2S 初始化 while ( 1 ); / 若初始化失敗,死循環 while ( I2SWriteLength < BUFSIZE ) / 發送數據長度判跳 while (I2SSTATE >> 16) & 0xFF) = TXFIFO_FULL); / 發送字長=8判跳 I2STXFIFO = I2STXBufferI2SWriteLength+; / 發送緩寫數據 I2STXDone = 1; / 寫發送結束標志 /* 等待發送/接收完成后,進行數據比較 */ while (
48、 !I2SRXDone | !I2STXDone ); / 等待發送/接收結束 for ( i=1; i<BUFSIZE; i+ ) / 數據比較 if ( I2SRXBufferi != I2STXBufferi-1 ) while ( 1 ); / 數據無效時死循環 _irq _nested _arm void I2SHandler (void) DWORD RxCount = 0; / 變量定義 _enable_interrupt(); / 中斷使能 if ( I2SSTATE & 0x01 ) / I2S中斷標識位判跳 RxCount = (I2SSTATE >&g
49、t; 8) & 0xFF; / 接收字長處理映射 if ( (RxCount != RXFIFO_EMPTY) && !I2SRXDone ) / 接收結束判跳 while ( RxCount > 0 ) / 接收計數器判0 if ( I2SReadLength = BUFSIZE ) / I2S讀數據長度判跳 I2SDAI |= (0x01 << 3) | (0x01 << 4); / 接收數據格式設置: 停止接收&同步復位 I2SIRQ &= (0x01 << 0); / 禁止接收中斷 I2SRXDone =
50、 1; / 置位接收結束標識 break; else I2SRXBufferI2SReadLength+ = I2SRXFIFO; / 接收緩數據映射 RxCount-; / 接收計數器-1 VICADDRESS = 0; / 中斷地址清零DWORD I2SInit( void ) DWORD DAIValue, DAOValue; / 數字音頻輸入/輸出控制變量定義 PCONP |= (1 << 27); / I2S電源控制:上電 PINSEL0_bit.P0_6 = 1; / P0.6設為I2SRX_SDA PINSEL0_bit.P0_7 = 1; / P0.7設為I2STX
51、_CLK PINSEL0_bit.P0_8 = 1; / P0.8設為I2STX_WS PINSEL0_bit.P0_9 = 1; / P0.9設為I2STX_SDA PINSEL1_bit.P0_23 = 2; / P0.23設為I2SRX_CLK PINSEL1_bit.P0_24 = 2; / P0.24設為I2SRX_WS I2STXRATE = 0x13; / 發送時鐘速率設置 I2SRXRATE = 0x13; / 接收時鐘速率設計 DAOValue = I2SDAO; / 數字音頻輸出控制寄存器數據傳送 /* Switch to master mode, TX channel, no mute*/ /*切換至主(發送)模式,非靜音 */ DAOValue &= (0x01 << 5)|(0x01 << 15); /選擇主模式(發送通道)/非靜音 DAIValue = I2SDAI; / 數字音頻輸入控制寄存器數據傳送 DAIValue &= (0x01 << 15); I2SDAO = (0x01 << 4) | (0x01 << 3) | DAOValue; /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025綜合物流服務合同范本
- 2025屆高三數學“8+3+3”小題期末專項練(10)復數與平面向量(新高考地區專用)解析版
- 2025贈與合同協議書范本
- 2025租賃合同終止的方法
- 2025年農科院作物學筆試題
- 2025年牙科綜合治療機合作協議書
- 2025年高、低能校正磁鐵項目合作計劃書
- 2025年麻疹、風疹、腮腺炎聯合疫苗合作協議書
- 2025年金融擔保服務項目合作計劃書
- 2025年碳纖維預浸布項目合作計劃書
- 感染性疾病科的操作規程
- 職場健身知識講座
- PTIO和ABTS自由基清除實驗操作指南-李熙燦-曾婧媛
- PCI患者的術后護理課件
- 2024年供應鏈可持續性培訓資料
- 丁麗娟《數值計算方法》五章課后實驗題答案(源程序很詳細-且運行無誤)
- WS-T 10001-2023 疾病預防控制機構實驗室儀器設備配置和管理
- 成人住院患者跌倒評估與預防(團體標準)解讀
- 通止規設計公差自動計算表
- 靜設備安裝質量控制過程
- 橋梁亮化施工流程圖
評論
0/150
提交評論