具體描述
				
				
					基本信息
書名:數字電路EDA實用教程
定價:26.00元
作者:顧斌    等
齣版社:西安電子科技大學齣版社
齣版日期:2014-07-01
ISBN:9787560633978
字數:
頁碼:
版次:1
裝幀:平裝
開本:16開
商品重量:0.4kg
編輯推薦
內容提要
全書從實用的角度齣發,通過大量工程實例,詳細介紹瞭利用EDA技術設計可編程邏輯器件的方法和技巧。全書分為3篇,共6章。上篇為可編程邏輯器件基礎知識篇,簡要介紹瞭EDA技術的應用領域、FPGA和CPLD硬件結構,詳細敘述瞭Altera公司和Xilinx公司常用開發工具的使用方法;中篇為硬件描述語言編程基礎篇,通過大量實例詳細介紹瞭VHDL和Verilog這兩種常用的硬件描述語言的語法和常用數字電路功能的實現;下篇為數字係統開發實例篇,包括實用數字鍾電路設計、串口通信設計、FIR濾波器的設計和數字頻率計的設計。
  本書語言簡潔、結構清晰,以實際工程為背景,實例典型、豐富,來自於實踐並且調試通過,是作者多年開發經驗的推廣與總結,代錶性和指導性強,利於讀者舉一反三。
  本書適閤計算機、自動化、電子及硬件等相關專業的大學生,以及從事FPGA開發的科研人員使用。
目錄
上篇  可編程邏輯器件基礎知識章  緒論  1.1  概述  1.2  EDA技術的應用領域  l.3  EDA的設計步驟  1.4  TOP-DOWN設計方法  1.5  硬件描述語言    1.5.l  ABEL-HDL    1.5.2  Verilog-HDL    1.5.3  VHDL    1.5.4  Verilog-HDL和VHDL的比較  1.6  可編程邏輯器件開發工具    l.6.1  ispLEVER    1.6.2  ISE    l.6.3  Quanus II  l.7  IP核概述第2章  Xilinx公司産品介紹及開發平颱應用  2.1  Xilinx公司及其FPGA産品    2.1.1  概述    2.1.2  可配置邏輯塊CLB    2.1.3  輸入/輸齣模塊10B    2.1.4  Block RAM  2.2  ISE Design Suite集成開發環境    2.2.1  ISE Design suite各功能模塊簡介    2.2.2  ISE Foundation軟件介紹  2.3  ISE  Foundation設計流程    2.3.1  問題分析    2.3.2  設計輸入    2.3.3  工程編譯    2.3.4  仿真驗證    2.3.5  器件配置與編程    2.3.6  IP核的使用  習題2第3章  AItera公司産品介紹及開發平颱應用  3.1  Altera公司CPLD芯片    3.1.1  概述    3.1.2  功能描述    3.1.3  邏輯陣列塊    3.1.4  用戶Flash存儲區  3.2  ModelSim的設計過程    3.2.1  新建工程與源文件    3.2.2  ModelSim仿真  3.3  Quartus Ⅱ的設計過程    3.3.1  設計輸入    3.3.2  編譯    3.3.3  編譯前的約束設置    3.3.4  仿真前的參數設置    3.3.5  仿真    3.3.6  引腳分配  3.4  Quartus Ⅱ與Modelsim聯閤仿真    3.4.1  存儲器初始化文件    3.4.2  Megawizard Plus-In Manager定製ROM    3.4.3  Quartus Ⅱ與ModelSim聯閤仿真  習題3中篇  硬件描述語言編程基礎第4章  VHDL編程基礎  4.1  VHDL概述  4.2  VHDL結構    4.2.1  實體說明    4.2.2  構造體    4.2.3  程序包、庫及配置  4.3  VHDL順序語句與並發語句    4.3.1  順序語句    4.3.2  並行語句  4.4  VHDL要素    4.4.1  VHDL文字規則    4.4.2  VHDL數據對象    4.4.3  VHDL數據類型    4.4.4  VHDL運算符  4.5  數字電路的VHDL實現    4.5.1  組閤邏輯電路設計    4.5.2  時序邏輯電路的VHDL實現    4.5.3  狀態機的VHDL實現  知識梳理與總結  習題4第5章  Veriloo編程基礎  5.1  Verilog簡介    5.1.1  模塊    5.1.2  時延    5.1.3  數據流描述方式    5.1.4  行為描述方式    5.1.5  結構化描述形式    5.1.6  混閤設計描述方式  5.2  Verilog要素    5.2.1  標識符    5.2.2  注釋    5.2.3  格式    5.2.4  編譯指令    5.2.5  值集閤    5.2.6  數據類型  5.3  錶達式    5.3.1  算術操作符    5.3.2  關係操作符    5.3.3  相等關係操作符    5.3.4  邏輯操作符    5.3.5  按位操作符    5.3.6  歸約操作符.    5.3.7  移位操作符    5.3.8  條件操作符    5.3.9  連接和復製操作  5.4  Veritog HDL的基本語法    5.4.1  賦值語句    5.4.2  塊語句    5.4.3  條件語句    5.4.4  循環語句    5.4.5  結構說明語句  5.5  數字電路的Verilog實現    5.5.1  簡單的組閤邏輯設計    5.5.2  簡單時序邏輯電路的設計    5.5.3  利用條件語句實現較復雜的時序邏輯電路    5.5.4  用always塊實現較復雜的組閤邏輯電路    5.5.5  在Verilog HDL中使用函數    5.5.6  利用有限狀態機進行復雜時序邏輯的設計    5.5.7  模塊之間的調用實現自頂嚮下的設計  知識梳理與總結  習題5下篇  數字係統開發實例第6章  典型數字係統設計  6.1  實用數字鍾電路設計    6.1.1  分頻器    6.1.2  時分秒計時器    6.1.3  數碼管驅動模塊    6.1.4  報時電路    6.1.5  頂層設計    6.1.6  數字鍾的硬件驗證  6.2  串口通信    6.2.1  異步串口數據傳送格式    6.2.2  波特率發生器    6.2.3  數據發送模塊程序    6.2.4  數據接收模塊程序    6.2.5  頂層設計    6.2.6  串口通信的硬件驗證  6.3  FIR濾波器的設計    6.3.1  FIR濾波器原理    6.3.2  FIR濾波器直接運算法    6.3.3  FIR濾波器IP核法  6.4  數字頻率計的設計    6.4.1  測頻原理    6.4.2  頻率計的組成結構分析    6.4.3  頻率計的VHDL程序    6.4.4  頻率計的仿真結果    6.4.5  頻率計的硬件驗證  習題6附錄  Nexys3開發闆參考文獻
作者介紹
文摘
序言
				 
				
				
					《嵌入式係統設計:從原理到實踐》  內容簡介:  《嵌入式係統設計:從原理到實踐》是一本深入探討嵌入式係統構建、開發與應用的全方位教程。本書旨在為讀者提供紮實的理論基礎和豐富的實踐經驗,幫助他們掌握從微控製器選型、硬件接口設計,到軟件開發、係統集成和調試的全過程。本書麵嚮的對象廣泛,包括電子工程、計算機科學、自動化等專業的在校學生,以及緻力於投身嵌入式係統研發的工程師和技術愛好者。  第一部分:嵌入式係統基礎理論  本部分將為讀者構建堅實的理論基石,理解嵌入式係統的核心概念和關鍵技術。     第一章:嵌入式係統概述        1.1 什麼是嵌入式係統?            定義與特徵:區彆於通用計算機,強調專用性、實時性、可靠性、低功耗等。            典型應用領域:工業控製、汽車電子、消費電子、醫療設備、通信係統、物聯網等,通過生動的案例分析,展示嵌入式係統在現代生活中的廣泛滲透。            嵌入式係統的發展曆程與趨勢:從早期簡單的微控製器到如今復雜的SoC(System on Chip),分析技術演進的關鍵節點和未來發展方嚮,如AIoT、邊緣計算等。        1.2 嵌入式係統的組成            硬件核心:微處理器/微控製器(CPU)、存儲器(RAM, ROM, Flash)、外設接口(GPIO, UART, SPI, I2C, ADC, DAC等)、電源管理單元。            軟件核心:固件(Firmware)、嵌入式操作係統(RTOS)、應用軟件。            人機交互接口(HMI):顯示屏、按鍵、觸摸屏、指示燈等。            通信接口:網絡接口(Ethernet, Wi-Fi, Bluetooth)、串行通信接口等。        1.3 嵌入式係統開發流程            需求分析與係統規格定義。            硬件選型與設計。            嵌入式軟件開發(驅動程序、中間件、應用層)。            係統集成與測試。            部署與維護。            介紹開發中的關鍵挑戰,如資源受限、實時性要求、功耗優化等。     第二章:微控製器(MCU)原理與選型        2.1 微控製器體係結構            CPU核心:CISC vs RISC,介紹ARM Cortex-M係列等主流架構的特點和優勢。            存儲器組織:程序存儲器(Flash)、數據存儲器(SRAM)、寄存器。            總綫結構:地址總綫、數據總綫、控製總綫,以及它們如何協同工作。            中斷係統:中斷嚮量錶、中斷優先級、中斷響應流程,理解實時性保障機製。            定時器/計數器:不同類型定時器的原理(如通用定時器、低功耗定時器),及其在PWM生成、時間測量等方麵的應用。            通用輸入/輸齣(GPIO)端口:配置、讀寫操作,控製外部設備。        2.2 常用外設接口詳解            串行通信接口:                UART/USART:異步串行通信原理,波特率、數據位、停止位、校驗位設置,常用於設備間的簡單通信。                SPI(Serial Peripheral Interface):同步串行通信,主從模式,時鍾同步,全雙工通信,適閤高速數據傳輸,如連接傳感器、SD卡等。                I2C(Inter-Integrated Circuit):多主多從通信,兩條總綫(SDA, SCL),地址機製,適閤連接少量設備,如EEPROM、ADC/DAC等。            ADC(Analog-to-Digital Converter):模擬信號數字化原理,采樣率、分辨率、參考電壓,將傳感器模擬信號轉換為數字量。            DAC(Digital-to-Analog Converter):數字信號模擬化原理,將數字量轉換為模擬電壓或電流,用於音頻輸齣、控製模擬電路等。            DMA(Direct Memory Access):直接內存訪問,CPU繞過,實現高效數據傳輸,減輕CPU負擔,提高係統性能。            PWM(Pulse Width Modulation):脈衝寬度調製,通過改變脈衝寬度來控製輸齣電壓或電流的平均值,用於電機調速、LED亮度調節等。        2.3 微控製器選型指南            性能需求:CPU主頻、運算能力。            存儲器容量:Flash ROM(程序存儲)、RAM(運行時數據)。            外設接口需求:根據應用場景選擇所需的接口類型和數量。            功耗要求:低功耗模式、待機電流。            封裝與尺寸:PCB闆空間限製。            成本與可獲得性。            開發生態與支持:工具鏈、社區資源、文檔資料。            通過對比不同廠商(如STMicroelectronics, NXP, Microchip, Espressif等)和係列(如STM32, LPC, PIC, ESP32等)的典型MCU,引導讀者進行實際選型。     第三章:嵌入式實時操作係統(RTOS)        3.1 RTOS的核心概念            任務(Task)/綫程(Thread):獨立執行的程序段,上下文切換。            任務狀態:就緒、運行、阻塞、掛起。            任務調度:搶占式調度、協作式調度,優先級調度算法(如固定優先級、動態優先級)。            任務間通信與同步:                消息隊列(Message Queue):多任務間傳遞數據,支持阻塞接收。                信號量(Semaphore):用於資源互斥訪問或事件通知,二元信號量(互斥鎖)、計數信號量。                互斥鎖(Mutex):解決共享資源競爭,防止死鎖。                事件標誌組(Event Flags):任務之間通過等待和設置事件來實現同步。            中斷服務程序(ISR)與任務交互:ISR的特點(短小精悍)、如何通過信號量或消息隊列與任務交互。        3.2 常見的RTOS介紹            FreeRTOS:廣泛應用,開源,功能強大,跨平颱性好,詳細介紹其內核特性,如任務管理、內存管理、同步機製等。            RT-Thread:國産RTOS,活躍的社區,完善的組件生態,分層架構,提供豐富的中間件。            Zephyr OS:Linux基金會項目,麵嚮資源受限設備,安全性高,支持多種硬件平颱。            UCOS係列:成熟的商業RTOS,廣泛應用於工業和醫療領域。            通過對比不同RTOS的特點、優勢和適用場景,幫助讀者選擇閤適的RTOS。        3.3 RTOS在嵌入式係統中的作用            提高並發處理能力,實現多任務並行運行。            簡化復雜係統的軟件設計,模塊化開發。            有效管理係統資源,避免資源衝突。            確保係統的實時性和可靠性。            提供標準化的API,方便移植和維護。  第二部分:嵌入式係統硬件接口與驅動開發  本部分將聚焦於如何通過代碼與硬件進行交互,編寫高效、可靠的設備驅動程序。     第四章:嵌入式Linux係統入門        4.1 Linux在嵌入式領域的優勢            開源免費,靈活度高。            強大的功能和豐富的應用程序支持。            成熟的網絡協議棧和文件係統。            廣泛的硬件支持和活躍的社區。            適閤資源相對豐富的嵌入式設備,如嵌入式網關、智能終端等。        4.2 嵌入式Linux開發環境搭建            交叉編譯工具鏈的安裝與配置:介紹為何需要交叉編譯,以及如何獲取和使用。            目標闆與主機(Host)的連接:串口、網絡連接。            構建嵌入式Linux鏡像:Bootloader(如U-Boot)、Kernel、Root Filesystem。            SD卡/eMMC燒寫係統鏡像。        4.3 嵌入式Linux常用命令與工具            文件操作:`ls`, `cd`, `cp`, `mv`, `rm`, `mkdir`。            進程管理:`ps`, `kill`, `top`。            網絡通信:`ping`, `ifconfig`, `ssh`, `scp`。            文本編輯:`vi`/`vim`。            調試工具:`gdb`(遠程調試)。        4.4 Linux設備模型與驅動框架            Linux設備驅動模型:字符設備、塊設備、網絡設備。            設備樹(Device Tree):描述硬件信息的標準化方式,解耦硬件配置與內核代碼。            Linux內核模塊(LKM):動態加載和卸載驅動代碼。            介紹`platform_driver`、`i2c_driver`、`spi_driver`等常用驅動模型。     第五章:嵌入式Linux設備驅動開發        5.1 GPIO驅動開發            Linux GPIO子係統接口:`gpio_request`, `gpio_direction_output`, `gpio_set_value`, `gpio_get_value`。            通過設備樹配置GPIO。            編寫一個簡單的GPIO驅動,控製LED閃爍。        5.2 串口(UART)驅動開發            Linux串口子係統:`/dev/ttyS`,`termios`結構體。            使用`open`, `read`, `write`, `ioctl`等係統調用進行串口通信。            編寫一個串口通信測試程序。        5.3 I2C/SPI驅動開發            Linux I2C/SPI子係統:`i2c-dev`接口,`spi-dev`接口。            使用`ioctl`與I2C/SPI設備進行通信。            編寫驅動程序與傳感器(如溫度傳感器、加速度計)進行數據交互。        5.4 ADC/PWM驅動開發            Linux IIO(Industrial I/O)子係統:統一的模擬輸入/輸齣設備接口。            通過`sysfs`接口訪問ADC/PWM設備。            編寫驅動程序讀取ADC采樣值或控製PWM輸齣。        5.5 塊設備驅動開發(概念介紹)            Linux塊設備層:`block_device_operations`。            介紹SD卡、eMMC等存儲設備的驅動工作原理。        5.6 驅動調試技巧            `printk`日誌輸齣。            `debugfs`和`sysfs`文件係統。            GDB遠程調試。            分析內核日誌(`dmesg`)。     第六章:嵌入式RTOS設備驅動開發        6.1 RTOS下的裸機編程與HAL庫            直接操作寄存器進行硬件控製:理解硬件手冊,直接讀寫MCU寄存器。            使用HAL(Hardware Abstraction Layer)庫/SDK:廠商提供的API,封裝底層硬件細節,提高開發效率。            對比裸機編程與HAL庫開發的優缺點。        6.2 基於RTOS的設備驅動開發模式            中斷驅動:編寫中斷服務函數(ISR),任務中使用信號量或消息隊列等待中斷。            輪詢驅動:任務周期性地檢查設備狀態。            DMA驅動:配置DMA控製器,實現高效數據傳輸。        6.3 典型外設驅動開發實踐(以FreeRTOS為例)            GPIO驅動:                使用HAL庫初始化GPIO。                編寫任務函數控製LED輸齣、讀取按鍵輸入。                結閤中斷實現按鍵事件處理。            UART驅動:                使用HAL庫配置UART。                實現發送和接收函數,支持阻塞接收。                利用RTOS的隊列或消息機製實現數據緩衝和處理。            I2C/SPI驅動:                使用HAL庫進行I2C/SPI總綫配置。                編寫讀寫函數的封裝,與外接傳感器(如BMP280氣壓傳感器、MPU6050陀螺儀)通信。                考慮錯誤處理和超時機製。            定時器/PWM驅動:                使用HAL庫配置定時器,實現周期性任務觸發。                配置PWM輸齣,控製舵機角度或LED亮度。            ADC驅動:                使用HAL庫配置ADC通道、采樣模式。                編寫任務讀取ADC值,實現數據采集。        6.4 驅動程序的設計與優化            模塊化設計:將驅動邏輯分解為獨立函數。            錯誤處理:完善的錯誤檢測和報告機製。            功耗優化:閤理使用低功耗模式,減少不必要的硬件喚醒。            性能優化:利用DMA,優化中斷處理流程。            驅動與應用層的接口設計:定義清晰的API。  第三部分:嵌入式係統應用開發與集成  本部分將引導讀者完成從硬件控製到係統功能的實現,構建完整的嵌入式應用。     第七章:嵌入式通信協議        7.1 TCP/IP協議棧            TCP/IP模型:分層結構,各層功能(應用層、傳輸層、網絡層、數據鏈路層、物理層)。            TCP與UDP:區彆與聯係,可靠性、連接性、傳輸速度的權衡。            IP地址與端口:網絡通信的尋址方式。            Socket編程:創建套接字,進行客戶端/服務器通信,介紹`socket()`, `bind()`, `listen()`, `accept()`, `connect()`, `send()`, `recv()`等常用API。        7.2 常用通信協議            HTTP/HTTPS:Web服務通信,客戶端/服務器模型,請求/響應機製。            MQTT(Message Queuing Telemetry Transport):輕量級的發布/訂閱消息協議,適用於物聯網場景,低帶寬、低功耗。            CoAP(Constrained Application Protocol):針對受限網絡的RESTful協議,類似於HTTP,但更輕量。            DDS(Data Distribution Service):實時數據分發,廣泛應用於工業自動化、航空航天等領域。        7.3 無綫通信技術            Wi-Fi:原理,配置,連接方式(AP模式、Station模式、AP+Station模式)。            Bluetooth(經典藍牙與BLE):區彆,應用場景,配對連接。            Zigbee:低功耗、低速率的短距離無綫網絡技術。            LoRa/NB-IoT:長距離、低功耗的廣域網技術。     第八章:嵌入式係統應用開發實踐        8.1 傳感器數據采集與處理            從各種傳感器(溫度、濕度、光照、壓力、氣體、姿態等)讀取數據。            數據濾波與校準:去除噪聲,提高數據精度。            數據格式化與打包:為後續傳輸或存儲做準備。        8.2 人機交互(HMI)設計            基於LCD/OLED顯示屏的UI設計:菜單、列錶、圖錶等。            觸摸屏交互:手勢識彆、事件響應。            按鍵與指示燈:基礎的交互方式。            圖形庫的使用:如LVGL(Light and Versatile Graphics Library),提供豐富的UI組件和動畫效果。        8.3 嵌入式Web服務器            使用LWIP(Lightweight IP)等輕量級TCP/IP協議棧。            在嵌入式設備上搭建HTTP服務器,通過瀏覽器訪問設備狀態或進行控製。            CGI(Common Gateway Interface)或Websocket實現動態內容。        8.4 雲平颱接入            選擇閤適的雲平颱:如阿裏雲IoT、AWS IoT、Azure IoT Hub。            使用MQTT等協議將設備數據上傳至雲平颱。            實現設備與雲平颱的雙嚮通信(遠程控製、OTA升級)。        8.5 案例分析:智能傢居網關開發            需求分析:連接多種智能設備,提供遠程控製和數據監測。            硬件選型:高主頻MCU或嵌入式Linux開發闆。            軟件架構:RTOS或Linux,MQTT客戶端,設備驅動。            功能實現:設備配網、數據轉發、雲平颱對接、APP控製接口。     第九章:嵌入式係統調試與優化        9.1 調試工具與技術            JTAG/SWD接口:硬件調試器,單步執行、設置斷點、觀察變量。            串口調試助手:查看日誌輸齣,發送命令。            邏輯分析儀/示波器:分析硬件信號時序、協議。            代碼調試技巧:斷點、單步、觀察、條件斷點。        9.2 係統性能分析            CPU占用率分析:`top`命令,RTOS任務統計。            內存占用分析:內存泄漏檢測,靜態/動態內存分配。            功耗分析:測量電流,分析低功耗模式下的喚醒源。            實時性分析:測量中斷響應時間,任務執行周期。        9.3 係統可靠性設計            Watchdog(看門狗):硬件/軟件看門狗,防止係統死鎖。            異常處理:捕獲和處理程序異常,如非法指令、總綫錯誤。            錯誤恢復機製:斷電重啓後的數據恢復,設備自動重連。            代碼健壯性:充分考慮邊界條件和異常輸入。        9.4 OTA(Over-The-Air)升級            OTA升級的原理與流程:固件分片、傳輸、校驗、寫入、重啓。            安全考慮:固件簽名、加密。            實現方案:Bootloader支持,應用層協議。  《嵌入式係統設計:從原理到實踐》通過詳實的內容和豐富的實例,引領讀者踏上嵌入式係統開發的探索之旅。本書不僅僅是技術知識的傳授,更是對係統思維、問題解決能力和工程實踐的培養。無論是初學者還是有經驗的工程師,都能從中受益,掌握設計和實現下一代智能嵌入式係統的關鍵技能。