本書(shū)使用Altera公司的Cyclone Ⅳ FPGA器件,由淺入深地引領(lǐng)讀者從嵌入式系統(tǒng)設(shè)計(jì)的大處著手,玩轉(zhuǎn)軟核處理器Nios Ⅱ。基于特定的FPGA實(shí)驗(yàn)平臺(tái),既有足夠的理論知識(shí)深度作支撐,也有豐富的例程進(jìn)行實(shí)踐學(xué)習(xí),并且穿插著筆者多年FPGA學(xué)習(xí)和開(kāi)發(fā)過(guò)程中的各種經(jīng)驗(yàn)和技巧。
對(duì)于希望快速入手嵌入式系統(tǒng)軟硬件開(kāi)發(fā)的初學(xué)者,以及希望從系統(tǒng)層面提升嵌入式開(kāi)發(fā)能力的學(xué)習(xí)者,本書(shū)都是很好的選擇。
吳厚航,[網(wǎng)名 特權(quán)同學(xué)]:從事FPGA開(kāi)發(fā)設(shè)計(jì)與板級(jí)硬件設(shè)計(jì)工作,專(zhuān)注于FPGA在數(shù)據(jù)采集、實(shí)時(shí)控制、傳輸協(xié)議實(shí)現(xiàn)、嵌入式系統(tǒng)等方面的應(yīng)用。擅長(zhǎng)記錄、分析并總結(jié)經(jīng)驗(yàn)及技巧。個(gè)人技術(shù)博客在業(yè)內(nèi)有的口碑。在著名電子網(wǎng)站EDN China創(chuàng)建的FPGA/CPLD助學(xué)小組成員過(guò)萬(wàn),提供了眾多適合入門(mén)和進(jìn)階的FPGA/CPLD實(shí)驗(yàn)例程以及相關(guān)資料,幫助眾多的初學(xué)者邁入FPGA開(kāi)發(fā)的殿堂。
第1章基于Nios Ⅱ處理器的嵌入式系統(tǒng)
1.1片上系統(tǒng)概述
1.2Nios Ⅱ的優(yōu)勢(shì)在哪里
1.3基于Nios Ⅱ處理器的FPGA開(kāi)發(fā)流程
第2章實(shí)驗(yàn)平臺(tái)“勇敢的芯”板級(jí)電路詳解
2.1板級(jí)電路整體架構(gòu)
2.2電源電路
2.3復(fù)位與時(shí)鐘電路
2.3.1關(guān)于FPGA器件的時(shí)鐘
2.3.2關(guān)于FPGA器件的復(fù)位
2.3.3實(shí)驗(yàn)平臺(tái)電路解析
2.4FPGA下載配置電路
2.5SRAM接口電路
2.6ADC/DAC芯片電路
2.7UART接口電路
2.8RTC接口電路
2.94×4矩陣按鍵電路
2.10VGA顯示接口電路
2.11蜂鳴器、數(shù)碼管、流水燈、撥碼開(kāi)關(guān)電路
2.12超聲波接口、外擴(kuò)LCD接口電路
第3章Qsys系統(tǒng)創(chuàng)建
3.1Qsys系統(tǒng)概述
3.2Qsys總線互連
3.3Quartus Ⅱ工程創(chuàng)建
3.4進(jìn)入Qsys系統(tǒng)
3.5Qsys界面簡(jiǎn)介
3.6新建Qsys系統(tǒng)
3.7保存Qsys系統(tǒng)
3.8加載Qsys系統(tǒng)
勇敢的芯伴你玩轉(zhuǎn)Nios Ⅱ
第4章Qsys通用組件添加與互連
4.1時(shí)鐘組件添加與設(shè)置
4.2Nios Ⅱ處理器添加與設(shè)置
4.3RAM組件添加與配置
4.4Nios Ⅱ處理器復(fù)位向量與異常向量地址設(shè)置
4.5System ID組件添加與配置
4.6JTAG UART組件添加與配置
4.7Timer組件添加與配置
4.8UART組件添加與配置
4.9蜂鳴器PIO組件添加與配置
4.10撥碼開(kāi)關(guān)PIO組件添加與配置
第5章Qsys互連總線概述
5.1嵌入式系統(tǒng)的總線
5.2AvalonMM總線
5.2.1AvalonMM總線寫(xiě)數(shù)據(jù)操作實(shí)例解析
5.2.2AvalonMM總線讀數(shù)據(jù)操作實(shí)例解析
5.3AvalonST總線
第6章Qsys自定義組件設(shè)計(jì)
6.1數(shù)碼管組件
6.1.1功能概述
6.1.2配置寄存器說(shuō)明
6.1.3組件創(chuàng)建與配置
6.1.4組件添加與配置
6.1.5組件互連與引出
6.2ADC組件
6.2.1功能概述
6.2.2配置寄存器說(shuō)明
6.2.3組件創(chuàng)建與配置
6.2.4組件添加與配置
6.2.5組件互連與引出
6.3DAC組件
6.3.1功能概述
6.3.2配置寄存器說(shuō)明
6.3.3組件創(chuàng)建與配置
6.3.4組件添加與配置
6.3.5組件互連與引出
6.4超聲波測(cè)距組件
6.4.1功能概述
6.4.2配置寄存器說(shuō)明
6.4.3組件創(chuàng)建與配置
6.4.4組件添加與配置
6.4.5組件互連與引出
6.5RTC組件
6.5.1功能概述
6.5.2配置寄存器說(shuō)明
6.5.3組件創(chuàng)建與配置
6.5.4組件添加與配置
6.5.5組件互連與引出
6.6矩陣按鍵組件
6.6.1功能概述
6.6.2配置寄存器說(shuō)明
6.6.3組件創(chuàng)建與配置
6.6.4組件添加與配置
6.6.5組件互連與引出
第7章Qsys系統(tǒng)生成
7.1中斷連接
7.2地址分配
7.3系統(tǒng)生成
7.4Qsys系統(tǒng)例化模板
第8章Quartus Ⅱ工程設(shè)計(jì)實(shí)現(xiàn)
8.1Verilog頂層文件設(shè)計(jì)
8.2語(yǔ)法檢查
8.3引腳分配
8.4系統(tǒng)編譯
第9章軟件開(kāi)發(fā)工具EDS
9.1EDS軟件開(kāi)啟
9.2BSP工程創(chuàng)建
9.3開(kāi)啟BSP Editor
9.4BSP Editor設(shè)置
9.5BSP工程編譯
9.6工程創(chuàng)建
9.7C代碼源文件創(chuàng)建
9.8軟件應(yīng)用工程編譯
9.9移除當(dāng)前工程
9.10加載工程
9.11移植工程
第10章軟件實(shí)驗(yàn)例程
10.1Nios Ⅱ?qū)嵗瓾ello NIOS II
10.1.1軟件功能概述
10.1.2軟件代碼解析
10.1.3板級(jí)調(diào)試
10.2Nios Ⅱ?qū)嵗甋ystem ID與Timestamp
10.2.1軟件功能概述
10.2.2軟件代碼解析
10.2.3板級(jí)調(diào)試
10.3Nios Ⅱ?qū)嵗澍Q器定時(shí)鳴叫
10.3.1軟件功能概述
10.3.2軟件代碼解析
10.3.3板級(jí)調(diào)試
10.4Nios Ⅱ?qū)嵗畵艽a開(kāi)關(guān)輸入GIO控制
10.4.1軟件功能概述
10.4.2軟件代碼解析
10.4.3板級(jí)調(diào)試
10.5Nios Ⅱ?qū)嵗攵〞r(shí)數(shù)碼管顯示
10.5.1軟件功能概述
10.5.2軟件代碼解析
10.5.3板級(jí)調(diào)試
10.6Nios Ⅱ?qū)嵗瓺AC遞增輸出
10.6.1軟件功能概述
10.6.2軟件代碼解析
10.6.3板級(jí)調(diào)試
10.7Nios Ⅱ?qū)嵗瓵DC采集打印
10.7.1軟件功能概述
10.7.2軟件代碼解析
10.7.3板級(jí)調(diào)試
10.8Nios Ⅱ?qū)嵗甎ART收發(fā)
10.8.1軟件功能概述
10.8.2軟件代碼解析
10.8.3板級(jí)調(diào)試
10.9Nios Ⅱ?qū)嵗甊TCUART時(shí)間打印
10.9.1軟件功能概述
10.9.2軟件代碼解析
10.9.3板級(jí)調(diào)試
10.10Nios Ⅱ?qū)嵗甊TCUART時(shí)間重置
10.10.1軟件功能概述
10.10.2軟件代碼解析
10.10.3板級(jí)調(diào)試
10.11Nios Ⅱ?qū)嵗暡y(cè)距
10.11.1軟件功能概述
10.11.2軟件代碼解析
10.11.3板級(jí)調(diào)試
10.12Nios Ⅱ?qū)嵗管?chē)?yán)走_(dá)
10.12.1軟件功能概述
10.12.2軟件代碼解析
10.12.3板級(jí)調(diào)試
10.13Nios Ⅱ?qū)嵗仃嚢存I值采集
10.13.1軟件功能概述
10.13.2軟件代碼解析
10.13.3板級(jí)調(diào)試
10.14Nios Ⅱ?qū)嵗仃嚢存I可調(diào)的ADC/DAC實(shí)例
10.14.1軟件功能概述
10.14.2軟件代碼解析
10.14.3板級(jí)調(diào)試
10.15Nios Ⅱ?qū)嵗?jì)算器
10.15.1軟件功能概述
10.15.2軟件代碼解析
10.15.3板級(jí)調(diào)試
第11章FPGA器件的代碼固化
11.1嵌入式軟件HEX文件生成
11.2程序存儲(chǔ)器初始化文件加載
11.3JIC燒錄文件生成
11.4JTAG燒錄配置