|
-- 會員 / 註冊 --
|
|
|
|
精通Raspberry Pi ( 簡體 字) |
作者:[美]Warren Gay 著 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> Raspberry Pi |
譯者:張龍杰,陳青華,劉勇 譯 |
出版社:清華大學出版社 | 3dWoo書號: 43017 詢問書籍請說出此書號!【缺書】 NT售價: 400 元 |
出版日:11/1/2015 |
頁數:459 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302418870 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:第1章 為什么學習本書? 1 1.1 本書讀者對象 1 1.2 本書主要內容 2 1.3 學習方法 2 1.4 本書的組織結構 3 1.5 本書中的軟件 4 1.6 結束語 5 第2章 Raspberry Pi 7 2.1 型號 7 2.2 共有的硬件 9 2.3 選擇哪一種型號? 9 第3章 準備 11 3.1 靜態IP地址 11 3.2 使用SSH 12 3.3 虛擬網絡計算機 13 3.3.1 顯示器編號 13 3.3.2 幾何尺寸 13 3.3.3 深度 14 3.3.4 像素格式 14 3.3.5 密碼設置 14 3.3.6 服務器的啟動 14 3.3.7 VNC查看器 14 3.3.8 停止VNC服務器 15 3.4 原型站 15 3.5 Adafruit Pi Cobbler 16 3.6 Gertboard 17 3.7 裸機 17 第4章 電源 19 4.1 計算功率 19 4.2 電流需求 20 4.3 外圍設備電源 20 4.4 B型輸入電源 21 4.5 A型輸入電源 22 4.6 3.3V電源 22 4.7 供電的USB集線器 22 4.8 電源適配器 22 4.8.1 一款不合適的電源 23 4.8.2 電子書適配器 23 4.8.3 最好的電源 23 4.8.4 電壓測試 24 4.9 蓄電池電源 25 4.9.1 要求 25 4.9.2 余量 25 4.9.3 LM7805調節 25 4.9.4 DC-DC降壓變換器 26 4.10 供電不足的征兆 28 4.11 斷電 28 第5章 頭帶、LED和復位 29 5.1 狀態指示LED燈 29 5.1.1 OK或ACT LED 29 5.1.2 PWR LED 29 5.1.3 FDX LED 30 5.1.4 LNK LED 30 5.1.5 10M或10/100 LED 30 5.2 P1頭 30 5.2.1 安全模式 32 5.2.2 邏輯電平 33 5.2.3 復位時GPIO的配置 33 5.2.4 單總線驅動器 33 5.3 P5頭 33 5.4 復位 34 第6章 SDRAM 37 6.1 /proc/meminfo 37 6.1.1 MemTotal(總存儲器) 39 6.1.2 MemFree(空閑存儲器) 39 6.1.3 Buffers(緩沖區) 40 6.1.4 Cached(高速緩存的) 40 6.1.5 SwapCached(交換的緩沖區) 40 6.1.6 Active(活躍的存儲器空間) 40 6.1.7 Inactive(不活躍的存儲器空間) 40 6.1.8 Active(anon) 41 6.1.9 Inactive(anon) 41 6.1.10 Active(file) 41 6.1.11 Inactive(file) 41 6.1.12 Unevictable(不可回收的) 42 6.1.13 Mlocked(被鎖定的) 42 6.1.14 SwapTotal(交換的總數) 42 6.1.15 SwapFree(自由交換的數量) 42 6.1.16 Dirty 42 6.1.17 Writeback 43 6.1.18 AnonPages 43 6.1.19 Mapped 43 6.1.20 Shmem 43 6.1.21 Slab 43 6.1.22 SReclaimable 44 6.1.23 SUnreclaim 44 6.1.24 KernelStack 44 6.1.25 PageTables 44 6.1.26 NFS_Unstable 44 6.1.27 Bounce 45 6.1.28 WritebackTmp 45 6.1.29 CommitLimit 45 6.1.30 Committed_AS 46 6.1.31 VmallocTotal 47 6.1.32 VmallocUsed 47 6.1.33 VmallocChunk 47 6.2 物理存儲器 47 6.3 存儲器映射 48 6.3.1 地址 50 6.3.2 長度 50 6.3.3 保護 50 6.3.4 標志 50 6.3.5 文件描述符 50 6.3.6 偏移 51 6.3.7 返回值 51 6.3.8 volatile關鍵字 51 6.4 虛擬存儲器 52 6.5 關于SDRAM的最后一點看法 52 第7章 CPU 53 7.1 鑒別 53 7.2 超頻 54 7.3 執行 56 7.4 線程 57 7.4.1 pthread頭文件 57 7.4.2 pthread錯誤處理 57 7.4.3 pthread_create(3) 58 7.4.4 pthread_attr_t 59 7.4.5 pthread_join(3) 60 7.4.6 pthread_detach(3) 61 7.4.7 pthread_self(3) 62 7.4.8 pthread_kill(3) 62 7.5 mutex 63 7.5.1 pthread_mutex_create(3) 63 7.5.2 pthread_mutex_destroy(3) 63 7.5.3 pthread_mutex_lock(3) 64 7.5.4 pthread_mutex_unlock(3) 64 7.6 條件變量 65 7.6.1 pthread_cond_init(3) 66 7.6.2 pthread_cond_destroy(3) 67 7.6.3 pthread_cond_wait(3) 67 7.6.4 pthread_cond_signal(3) 68 7.6.5 pthread_cond_broadcast(3) 68 第8章 USB 69 8.1 電源 70 8.2 供電集線器 70 8.3 USB API支持 71 8.3.1 libusb 71 8.3.2 Include文件 71 第9章 以太網 75 9.1 有線以太網 75 9.1.1 /etc/network/interfaces 76 9.1.2 改變到靜態IP 76 9.1.3 測試靜態IP地址 77 9.1.4 USB適配器 78 9.1.5 /etc/hosts文件 78 9.2 無線以太網 78 第10章 SD卡存儲 83 10.1 SD卡媒介 83 10.2 SD卡接口 83 10.3 SD卡基礎 84 10.4 Raspbian區塊尺寸 84 10.5 容量和性能 86 10.6 傳送模式 86 10.6.1 SPI總線模式 86 10.6.2 1位SD模式 87 10.6.3 4位SD模式 88 10.7 耗損均衡 88 第11章 UART 91 11.1 RS-232轉換器 91 11.2 RS-232 93 11.2.1 起始位 93 11.2.2 數據位 94 11.2.3 奇偶位 94 11.2.4 停止位 94 11.2.5 波特率 95 11.2.6 中斷 96 11.2.7 流控制 96 11.3 Raspberry Pi UART 98 11.4 ARM PL011 UART 98 11.4.1 RTS/CTS訪問 98 11.4.2 PL011 UART特性 99 11.5 獨占串行線路的使用 100 11.5.1 步驟 100 11.5.2 驗證 101 11.6 串行API 101 11.6.1 頭文件 101 11.6.2 open(2) 101 11.6.3 結構體termios 102 11.6.4 tcgetattr(3) 104 11.6.5 tcsetattr(3) 105 11.6.6 tcsendbreak(3) 105 11.6.7 tcdrain(3) 106 11.6.8 tcflush(3) 106 11.6.9 tcflow(3) 107 11.6.10 cfmakeraw(3) 107 11.6.11 cfgetispeed(3) 110 11.6.12 cfgetospeed(3) 110 11.6.13 cfsetispeed(3) 111 11.6.14 cfsetospeed(3) 111 11.6.15 cfsetspeed(3) 111 11.6.16 read(2) 112 11.6.17 write(2) 113 11.6.18 readv(2)和writev(2) 114 11.6.19 EINTR錯誤 115 第12章 GPIO 117 12.1 引腳和名稱 117 12.2 復位后的配置 118 12.3 上拉電阻 120 12.3.1 配置上拉電阻 120 12.3.2 測試上拉狀態 124 12.4 邏輯電平 125 12.5 驅動能力 125 12.5.1 輸入引腳 126 12.5.2 輸出引腳 126 12.5.3 驅動LED 128 12.5.4 測試驅動能力 130 12.6 GPIO電流預算 132 12.7 配置 132 12.7.1 交替功能選擇 132 12.7.2 輸出引腳 133 12.7.3 輸入引腳 133 12.7.4 交替功能 133 12.8 Sysfs GPIO訪問 134 12.8.1 export 134 12.8.2 unexport 135 12.8.3 gpioX 135 12.8.4 芯片級 137 12.9 GPIO測試器 137 12.10 GPIO輸入測試 138 12.11 可能的波動 140 12.12 讀取事件 140 12.13 直接寄存器訪問 145 12.13.1 gpio_init( ) 146 12.13.2 gpio_config( ) 146 12.13.3 gpio_write( ) 146 12.13.4 gpio_read( ) 147 12.13.5 gpio_io.c 147 12.14 GPIO晶體管驅動器 149 12.14.1 驅動器設計 149 12.14.2 替代品 151 12.14.3 電感負載 151 12.14.4 驅動器小結 152 12.15 GPIO實用程序 152 12.15.1 顯示GPIO設置 153 12.15.2 讀GPIO 154 12.15.3 寫GPIO 154 12.15.4 修改驅動層 154 第13章 單總線驅動器 155 13.1 單總線與供電 155 13.2 線上供電 155 13.3 主機和從機 156 13.4 協議 156 13.4.1 復位 157 13.4.2 數據輸入/輸出 157 13.5 從機支持 158 13.6 讀取溫度 158 13.6.1 總線主機 160 13.6.2 從機設備 160 13.6.3 讀取溫度 162 13.7 單總線GPIO引腳 162 第14章 I2C總線 165 14.1 I2C概述 165 14.2 SDA和SCL 166 14.3 多主機和仲裁 166 14.4 總線信號傳輸 167 14.5 數據位 167 14.6 消息格式 168 14.7 哪些I2C總線? 169 14.8 I2C總線速度 169 14.9 工具 170 14.10 I2C API 170 14.10.1 內核模塊支持 170 14.10.2 頭文件 171 14.10.3 open(2) 171 14.10.4 ioctl(2,I2C_FUNC) 172 14.10.5 ioctl(2,I2C_RDWR) 172 第15章 SPI總線 175 15.1 SPI基礎 175 15.2 SPI模式 176 15.3 信號傳輸 176 15.4 從機選擇 177 15.5 驅動支持 178 15.6 SPI API 179 15.6.1 頭文件 179 15.6.2 打開設備 180 15.6.3 SPI模式宏 180 15.6.4 字的每一位 181 15.6.5 時鐘頻率 182 15.6.6 數據輸入/輸出 182 15.6.7 關閉 185 15.6.8 寫 185 15.6.9 讀 185 15.7 SPI測試 185 第16章 引導 189 16.1 引導ARM Linux 189 16.2 啟動順序 190 16.3 引導文件 190 16.4 config.txt 191 16.4.1 復合視頻設置 191 16.4.2 高精度視頻 192 16.4.3 過掃描視頻 198 16.4.4 幀緩沖器設置 198 16.4.5 通用視頻選項 199 16.4.6 授權的多媒體數字編解碼器 200 16.4.7 測試 200 16.4.8 存儲器 200 16.4.9 啟動引導選項 201 16.4.10 超頻 205 16.4.11 保單與超頻 206 16.4.12 電壓設置 210 16.5 cmdline.txt 212 16.5.1 Serial console= 213 16.5.2 Virtual console= 214 16.5.3 kgdboc= 214 16.5.4 root= 214 16.5.5 rootfstype= 215 16.5.6 elevator= 215 16.5.7 rootwait= 215 16.5.8 nfsroot= 216 16.5.9 ip= 217 16.6 應急內核 217 第17章 初始化 219 17.1 運行等級 219 17.2 /etc/inittab 220 17.2.1 inittab的行為initdefault 220 17.2.2 常規啟動順序 221 17.2.3 inittab的行為wait 223 17.2.4 inittab的行為once 223 17.2.5 inittab的行為respawn 224 17.3 改變運行等級 224 17.3.1 telinit 224 17.3.2 運行等級的修改 225 17.3.3 單用戶模式 225 17.3.4 關機和重啟 225 17.4 創建新的服務 225 第18章 vcgencmd 227 18.1 vcgencmd命令 227 18.2 選項measure_clock 228 18.3 選項measure_volts 229 18.4 選項measure_temp 230 18.5 選項codec_enabled 230 18.6 選項version 231 18.7 選項get_lcd_info 231 18.8 選項get_config 231 第19章 Linux控制臺 233 19.1 可用的控制臺 233 19.2 串行控制臺 234 第20章 交叉編譯 235 20.1 術語 235 20.2 操作系統 236 20.3 宿主、客戶、本地和目標 236 20.3.1 平臺的限制 237 20.3.2 沒有VirtualBox (本機) 237 20.3.3 使用VirtualBox(Ubuntu/Linux) 237 20.4 規劃你的交叉開發環境 237 20.5 構建交叉編譯環境 238 20.5.1 下載crosstool-NG 238 20.5.2 暫存目錄 239 20.5.3 解壓源碼文件(tarball) 239 20.5.4 創建/opt/x-tools目錄 239 20.5.5 安裝軟件包依賴 239 20.5.6 配置crosstool-NG(源代碼安裝的第一步) 240 20.6 編譯crosstool-ng 240 20.7 將程序安裝至系統中 240 20.8 路徑 240 20.9 交叉編譯配置 241 20.9.1 路徑和其他選項 241 20.9.2 目標選項 243 20.9.3 操作系統 243 20.9.4 二進制實用程序 244 20.9.5 C語言編譯器 244 20.9.6 保存配置 245 20.10 構建交叉編譯器 246 第21章 交叉編譯內核 249 21.1 鏡像工具 249 21.2 下載內核 250 21.3 編輯Makefile 251 21.4 make mrproper指令 252 21.5 內核配置 252 21.6 make menuconfig指令(圖形化的內核配置) 253 21.7 make指令 253 21.8 準備內核鏡像 253 21.9 安裝內核鏡像 254 21.10 模塊 255 21.11 固件 256 21.12 SD卡VirtualBox(虛擬機)的安裝 257 第22章 DHT11傳感器 259 22.1 特征 259 22.2 電路 260 22.3 協議 260 22.3.1 通用協議 260 22.3.2 數據位數 261 22.3.3 數據格式 261 22.3.4 軟件 262 22.3.5 選擇的方法 263 22.4 運行示例 264 22.5 源代碼 265 第23章 MCP23017 GPIO擴展器 271 23.1 DC特征 271 23.1.1 GPIO輸出電流 272 23.1.2 GPIO輸入 272 23.1.3 待機電流 273 23.1.4 輸入邏輯電平 273 23.1.5 輸出邏輯電平 273 23.2 復位時序 274 23.3 電路 274 23.4 I2C總線 275 23.5 接線和測試 275 23.6 軟件配置 277 23.7 主程序 283 23.8 i2c_funcs.c模塊 288 23.9 sysgpio.c模塊 291 23.10 運行示例 294 23.11 響應時間 296 第24章 Nunchuk手柄 299 24.1 項目概況 299 24.2 Nunchuk手柄的特點 299 24.3 連接器引腳輸出 300 24.4 測試連接 301 24.5 NunchukI2C協議 302 24.5.1 加密 302 24.5.2 讀取傳感器的數據 302 24.6 Linux uinput界面 303 24.6.1 使用頭文件 304 24.6.2 打開設備節點 304 24.6.3 配置事件 304 24.6.4 創建節點 308 24.6.5 發布EV_KEY事件 309 24.6.6 發布EV_REL事件 310 24.6.7 發布EV_SYN事件 310 24.6.8 關閉uinput 311 24.7 X-Windows(圖形用戶界面) 311 24.8 輸入實用程序 312 24.9 測試Nunchuk 312 24.9.1 測試./Nunchuk 313 24.9.2 Lsinput實用程序 314 24.9.3 input-events實用程序 314 24.10 程序 315 第25章 實時時鐘 325 25.1 DS1307概述 325 25.1.1 X1和X2引腳 326 25.1.2 SQW/OUT引腳 326 25.2 電源 327 25.3 3伏特兼容性 328 25.4 微小的RTC修改 328 25.5 DS1307總線速度 331 25.6 RTC和RAM地址映射 331 25.7 閱讀日期和時間 332 25.8 I2C通信 333 25.9 接線 334 25.10 運行示例 334 25.11 最終測試 335 25.12 啟動腳本 335 第26章 VS1838B紅外接收器 345 26.1 操作參數 345 26.2 VS1838B電路 346 26.3 軟件 347 26.3.1 信號元件 348 26.3.2 組織機構代碼 349 26.3.3 命令行選項 349 第27章 步進電機 363 27.1 軟盤步進電機 363 27.2 驅動器電路 365 27.3 驅動驅動器 368 27.3.1 輸入電平 368 27.3.2 復位/啟動電源 369 27.4 操作模式 370 27.4.1 波驅動(0模式) 370 27.4.2 全步進驅動(1模式) 370 27.4.3 半步進驅動(2模式) 370 27.5 軟件 371 第28章 H橋驅動器 381 28.1 L298驅動器 381 28.1.1 傳感電阻 382 28.1.2 使能A和B 382 28.1.3 In1和In2輸入 382 28.1.4 保護二極管 382 28.2 L298 PCB 383 28.3 從GPIO驅動 384 28.4 雙極步進模式 386 28.4.1 單相波模式 386 28.4.2 雙相波模式 386 28.4.3 半步模式 387 28.5 選擇驅動GPIO 388 28.6 項目示意圖 388 28.7 程序運行 389 第29章 遠程控制面板 399 29.1 切換輸入 399 29.2 CD4013 400 29.3 觸發器測試 401 29.4 LED燈 402 29.5 ?MQ 402 29.5.1 執行安裝 402 29.5.2 編譯和鏈接 403 29.6 感測站的設計 403 29.7 感測站程序 404 29.8 控制臺程序 404 29.9 傳感器源代碼 405 29.10 控制臺源代碼 413 第30章 脈沖寬度調制 419 30.1 PWM介紹 419 30.2 PWM參數 420 30.3 PWM硬件外設 420 30.4 PWM軟件 420 30.5 儀表電路 420 30.6 pwm程序 421 30.6.1 PWM硬件設置命令 423 30.6.2 基于硬件顯示CPU使用百分比(率) 424 30.6.3 PWM程序軟件 430 30.6.4 有多少PWM? 432 30.6.5 運行PWM軟件命令 433 30.6.6 基于軟件顯示CPU使用百分比 433 附錄A 術語表 437 附錄B 電源標準 443 附錄C 電子學參考 445 附錄D Raspbian apt命令 447 附錄E ARM編譯選項 451 附錄F Mac OS X技巧 453 參考文獻 455
|
內容簡介:Raspberry Pi完全參考指南催生你的項目創意! Raspberry Pi是一款優秀教學工具,如果你打算講授Linux基礎原理或Python程序設計課程,該工具將是一個良好開端。但如果你是一名電子工程師、Linux系統管理員或經驗豐富的制造商,你不僅要了解基礎理論和入門知識,還必須掌握Raspberry Pi的內部工作原理來完成設計。 如果你打算學習Raspberry Pi專業知識、完成電路圖、詳細了解硬件、報告電壓和溫度以及重新編譯內核,那么 精通Raspberry Pi 一書無疑是你的最佳之選。本書不僅透徹闡釋硬件和操作系統,還列舉各種可供調整后用于實際項目的示例。 本書內容: ● 如何針對純硬件接口設置Raspberry Pi ● 詳明闡述包括GPIO在內的Pi硬件能力 ● 學習Raspbian Linux,如引導文件、Pi自帶的vcgencmd命令以及交叉編譯軟件(包括內核) ● 如何搭建GPIO擴展器 ● 如何通過H橋驅動來連接步進電機 ● 如何制作遠程控制板 ● 如何通過Pi生成脈沖寬度調制 不論專業的電子工程師,還是有志于深入了解Raspberry Pi的技術人員,都可將本書用作參考書,隨時參閱,從中汲取靈感。 |
目錄: |
序: |
|