基本介紹
內容簡介
用大量的圖片,演示了嵌入式系統的開發細節,讓複雜枯燥的開發工作一目了然;由簡單到複雜的介紹,循序漸進的例子,讓讀者升起學習的信心。所有例子全部來自實際的產品開發。
作者簡介
王真星,清華大學博士後,高級工程師,《計算機套用研究》特邀審稿專家,上海政府採購專家,深圳科技局專家,新加坡計算機組織IACSIT高級會員,上海群芯電子科技有限公司技術設計總監,上海第二工業大學副教授。1993年開始從事嵌入式產品研發工作,具有非常豐富的實戰經驗。開發的產品涵蓋航空航天、工業控制、消費電子等領域。近年來培養了大量嵌入式開發人才。
圖書目錄
前言
第1章 把好兩頭是關鍵——輸入與輸出基礎知識
1.1 輸出
1.1.1 最簡單的I/O輸出
1.1.2 感性負載對I/O輸出的影響
1.1.3 隔離輸出
1.1.4 輸出電壓匹配
1.2 輸入
1.2.1 輸入上拉電阻的確定
1.2.2 模擬輸入的問題
1.2.3 模擬輸入的等效網路
1.2.4 模擬小信號處理
第2章 最簡單的例子——足療機控制器設計
2.1 功能需求分析
2.1.1 人機輸入分析
2.1.2 運行模式分析
2.1.3 電路板組成部分分析
2.1.4 足療控制器功能劃分
2.2 基於成本約束的控制電路板原理圖設計
2.2.1 成本控制相關的考慮
2.2.2 CPU控制板的設計
2.3 CPU控制板的PCB設計
2.3.1 PCB及貼片的成本考慮
2.3.2 焊接要求
2.4 價格成本核算
2.5 控制器開關電源設計
2.5.1 線性電源的設計
2.5.2 開關電源設計基本原理
2.5.3 用PI Expert設計足療機的開關電源變壓器
2.5.4 開關變壓器的設計
2.5.5 控制積體電路部分
2.5.6 開關電源的PCB設計
2.6 控制器其他部分設計
2.7 給PCB代工廠提交的資料
2.8 足療機軟體設計
2.8.1 紅外通信設計
2.8.2 PWM產生
2.8.3 定時掃描顯示
2.8.4 鍵盤處理程式
2.8.5 間斷運行模式程式
2.8.6 定位程式
2.8.7 主控子程式
2.8.8 主控程式
第3章 更進一步——桌球發球機產品設計
3.1 需求分析
3.1.1 遙控器需求分析
3.1.2 主機板需求分析
3.2 硬體功能設計和實現
3.2.1 落點的實現
3.2.2 發球個數的實現
3.2.3 紅外接收的實現
3.2.4 供球電動機正反轉和調速的實現
3.3 主控板硬體原理圖設計
3.4 紅外遙控發射硬體設計
3.4.1 遙控器硬體要求分析
3.4.2 液晶的選擇
3.4.3 遙控器主機板設計
3.4.4 遙控器紅外發射的調製
3.4.5 遙控器的外觀
3.5 軟體設計規劃
3.5.1 合理安排中斷優先權
3.5.2 主控程式總體結構
第4章 質的飛躍—從單片機到ARM產品開發
4.1 嵌入式系統和ARM
4.1.1 JTAG接口
4.1.2 JTAG標準
4.1.3 JTAG硬體控制器
4.2 JTAG仿真器製作
4.2.1 ARM的調試結構
4.2.2 JTAG仿真環境
4.2.3 自製簡易仿真器
4.2.4 JTAG仿真器硬體製作
4.2.5 JTAG 仿真器驅動軟體
4.3 ADS開發套件
4.3.1 在ADS 1.2中使用簡易JTAG仿真頭調試
4.4 ARM啟動代碼和Bootloader
4.4.1 啟動代碼主要構成
4.4.2 啟動代碼實例分析
4.5 從ADS 1.2 到Realview MDK
4.5.1 工具結構的改進
4.5.2 分散載入檔案
4.5.3 C庫函式的差異
4.5.4 開發環境遷移實例
第5章 ARM常用外設接口
5.1 SPI接口
5.2 模組式LCD的SPI接口設計
5.2.1128×64點陣顯示器
5.2.2 模組引腳說明
5.2.3 模組式LCD硬體連線
5.2.4 模組式LCD內部存儲器
5.2.5 SPI接口LCD顯示程式
5.3 SPI Flash Memory編程
5.3.1 SPI Flash硬體接口
5.2.3 AT45DB041的軟體接口函式
5.3 I2C接口
5.4.1 上拉電阻與傳輸速率
5.4.2 I2C匯流排三種信號
5.4.3 軟體仿真I2C示例
5.4.4 帶I2C硬體控制器的程式
第6章 基於STM32的室內導航家用拖地機
6.1 對mint5200進行拆解
6.2 設計方案
6.2.1 外觀的修改
6.2.2 機械設計
6.2.3 室內導航方案的選擇
6.2.4 導航系統方案設計
6.2.5 紅外通信方案設計
6.2.6 保證直線行走的設計方案
6.2.7 方案的合理性分析
6.3 總體設計
6.4 硬體設計
6.5 軟體設計
6.5.1 關於STM32固件庫
6.5.2 異常信號的處理
6.5.3 電動機控制部分
6.5.4 紅外和噪聲波載波發生
6.5.5 PID電動機速度控制
6.5.6 MPU6050陀螺儀及姿態解算
6.5.7 有關清潔覆蓋算法分析
6.5.8 規則動作庫
6.6 拖地機產品樣機
6.7 拖地機專利撰寫舉例
第7章 基於OS層面ARM必備知識— 嵌入式Linux檔案系統
7.1 Linux檔案系統簡介
7.1.1 ext2和INODE
7.1.2 虛擬檔案系統(VFS)
7.2 註冊檔案系統
7.3 安裝檔案系統
7.4 在虛擬檔案系統中搜尋檔案
7.5 卸載檔案系統
7.6 /proc檔案系統
7.7 設備特殊檔案
7.8 常見的flash檔案系統
7.8.1 Flash的特點
7.8.2 JFFS2
7.8.3 YAFFS檔案系統
7.9 根檔案系統
第8章 將設備聯網—嵌入式Web Sever的實現
8.1 Web基礎知識
8.1.1 HTTP協定
8.1.2 HTTP請求
8.1.3 HTTP應答
8.2 面向電子商務的B/S結構
8.3 Web Server製作網頁
8.4 CGI工作原理
8.4.1 環境變數
8.4.2 CGI標題和GET/POST
8.4.4 CGI程式的開發
8.4.5 幾種常用資料庫接口
8.4.6 幾種常用CGI及其Web開發語言
8.5 JavaScript腳本
8.5.1 JavaScript的語句及語法
8.5.2 JavaScript編程舉例
8.6 Socket通信
8.6.1 TCP Socket編程舉例
8.6.2 UDP Socket編程舉例
8.6.3 HTTP請求中Client與Server的互動過程
8.6.4 一個簡單的Web伺服器例子
8.7 嵌入式Web伺服器Boa的特點
8.7.1 Boa的功能實現
8.7.2 Boa的移植步驟
8.7.3 CGIC庫的移植
8.7.4 HTML模板的製作
8.7.5 一個綜合的Web測試實驗
8.8 通過網路遠程控制開發板上的燈
第9章 基於Linux的家庭網關設計
9.1 產品開發背景
9.2 功能需求
9.3 家庭網關設計
9.3.1 網路通信設計
9.3.2 網關軟體架構
9.3.3 關於視頻硬體設計
9.3.4 系統整體的硬體設計
9.3.5 家庭網關係統包含的軟體
9.4 硬體平台設計
9.5 嵌入式Web開發概述
9.5.1 Mizi Linux
9.5.2 Boa小型Web伺服器
9.5.3 SQLite輕型資料庫
9.5.4 網關的軟體平台構造
9.6 軟體環境搭建步驟
9.6.1 燒寫Mizi Linux
9.6.2 搭建交叉編譯環境
9.6.3 Boa移植
9.6.4 SQLite移植
9.6.5 SQLite使用方法與常用命令
9.6.6 建立資料庫
9.7 CGI程式設計與實現
9.7.1 CGI與客戶端的通信機制
9.7.2 程式中讀寫SQLite資料庫
9.7.3 RS—485串口讀寫
9.7.4 指令格式定義
9.7.5 CGI腳本舉例
9.8 前台網頁設計與實現
9.8.1 HTML簡介
9.8.2 CSS簡介
9.8.3 JavaScript簡介
9.8.4 Ajax技術351
9.9 網關使用說明書
9.9.1 產品概述
9.9.2 用戶登錄
9.9.3 主界面
9.9.4 家電控制
9.9.5 系統設定
9.10 家庭網關產品的智慧財產權保護問題
參考文獻