片上系統(tǒng)(System on Chip,SoC)的概念是在20世紀90年代提出的,隨后成為微電子芯片技術發(fā)展的熱點。但是,SoC不能滿足模擬和數字混合系統(tǒng)的需求,它的應用遠不如想象的那樣廣泛。2003年美國賽普拉斯半導體公司(2019年被德國英飛凌科技股份公司收購)推出了可編程片上系統(tǒng)(Programmable System on Chip,PSoCTM,本書簡稱為PSoC),它不但集8位微控制器、可編程數字陣列和可編程模擬陣列為一體,而且實現了在系統(tǒng)可編程。既滿足了一般電子系統(tǒng)的資源要求,又順應了現代電子設計方法的發(fā)展方向。隨著微電子技術的發(fā)展,PSoC功能越來越強大,發(fā)展出了不同類型,不同類型所具有的資源和功能也不同,本書主要介紹最新的PSoC6。
本書是以作者多年的教學經驗和開發(fā)實踐為基礎而編寫的教材,全面介紹PSoC6的結構、原理、編程方法和實現方法,具有完整的體系結構,并設計大量的實踐環(huán)節(jié),力圖通過實訓使讀者較快掌握利用PSoC6設計和實現電子系統(tǒng)的方法,以獲得適用于不同應用領域的專用芯片。因此,本書可以作為有關課程的教科書,也可以作為教師、學生和工程技術人員開發(fā)和研究PSoC6的參考書。
本書力圖在總體結構和內容編排上具有系統(tǒng)性、科學性、啟發(fā)性、實用性和適用性,做到由淺入深、循序漸進、易于入門、便于自學、適于教學、利于深入研究。
本書內容包括PSoC6基本結構、PSoC6開發(fā)環(huán)境、PSoC6實驗和PSoC6原理共四部分,編寫指導思想如下:
(1) 為了使讀者能夠盡快認識PSoC6,第一部分首先介紹PSoC6的特點、基本結構、應用、開發(fā)步驟、不同系列和選型、常用用戶模塊。
(2) 為了使讀者能夠盡快掌握PSoC6的開發(fā)流程和使用方法,突出實用性,第二部分介紹了PSoC6的集成開發(fā)環(huán)境、實驗套件的使用方法、應用程序設計方法和開發(fā)流程,第三部分則以實驗為例,詳細介紹PSoC6的基本開發(fā)方法及PSoC6集成開發(fā)環(huán)境的詳細使用方法。
(3) 讀者在掌握PSoC6的基本開發(fā)方法之后,還需要理解PSoC6原理才能開發(fā)高級應用,因此本書第四部分介紹PSoC6原理。
各部分內容主要特點如下:
第一部分針對第三部分實驗所用到的PSoC6的常用用戶模塊(即外設),詳細說明它們的功能、特點、主要參數和輸入/輸出端口,便于讀者理解,讀者在閱讀第二部分時可以參考。
第二部分針對第三部分實驗所需要的實驗套件和開發(fā)環(huán)境,以實用和易于自學為原則,詳細介紹實驗套件的各部分內容以及外部接口,同時以設計流程為線索介紹開發(fā)環(huán)境PSoC Creator各個功能部分的使用。
第三部分實驗遵循循序漸進的思想,分為基本實驗、提高實驗、綜合實驗、創(chuàng)新實驗,使讀者逐步掌握PSoC6的開發(fā)方法,最后達到靈活和創(chuàng)新運用PSoC6開發(fā)實際系統(tǒng)的程度。
第四部分在介紹PSoC6各部分原理時先介紹常用的及本書實驗部分用到的資源,而將其他資源單獨編為第11章置于最后,讀者可根據需要查閱。
為利于自學,第一、二、四部分的每章章末均安排了自測習題。
本書由葉朝輝、華成英、趙曉燕編著。
葉朝輝負責全書定稿,并編寫第1、4、5章。華成英撰寫序言。趙曉燕編寫第2章、第3章的一部分和第7章7.1節(jié)的一部分。清華大學自動化系碩士研究生汪錦秈、程雪珂編寫第3章的其余部分、第6章、第7章其余部分、第8章~第11章,在此感謝他們的辛勤勞動和對本書的貢獻。另外,第7章的創(chuàng)新實驗均由清華大學自動化系的各屆本科生設計,在此表示感謝。
在本書的編寫過程中,得到了德國英飛凌科技股份公司特別是其北京辦事處的王佳經理的支持和幫助,在此一并表示深深的謝意。
由于我們的能力和水平所限,書中定有疏漏、欠妥和錯誤之處,懇請各界讀者多加指正。
作者2023年4月于清華園
第一部分PSoC6基本介紹
第1章PSoC6概述
1.1PSoC6的特點
1.2PSoC6的基本結構
1.3PSoC6的應用
1.4PSoC6的系統(tǒng)開發(fā)特點
習題
第2章PSoC6結構
2.1PSoC6簡介
2.2PSoC61系列
2.3PSoC62系列
2.4PSoC63系列
2.5PSoC64系列
2.6PSoC6選型
習題
第3章PSoC6用戶模塊
3.1數字用戶模塊
3.1.1PWM
3.1.2SmartI/O
3.2通信用戶模塊
3.2.1UART
3.2.2SPI
3.2.3I2C
3.2.4BLE
3.3模擬用戶模塊
3.3.1運算放大器
3.3.2電壓比較器
3.4模數混合用戶模塊
3.4.1逐次逼近型模數轉換器SAR ADC
3.4.2數模轉換器DAC
3.4.3CapSense
3.5其他用戶模塊
3.5.1DMA
3.5.2SysInt
習題
第二部分PSoC6開發(fā)環(huán)境
第4章PSoC6開發(fā)系統(tǒng)概述
4.1集成開發(fā)環(huán)境PSoC Creator
4.2PSoC6實驗套件
4.2.1PSoC6實驗套件簡介
4.2.2PSoC6實驗板簡介
4.2.3EINK墨水顯示屏擴展板簡介
習題
第5章PSoC6應用程序設計
5.1C語言基礎
5.1.1數據類型
5.1.2操作符
5.1.3表達式
5.1.4語句
5.1.5指針
5.1.6處理指令
5.2外設驅動程序庫PDL
5.3嵌入式實時操作系統(tǒng)FreeRTOS
5.1.1FreeRTOS簡介
5.1.2FreeRTOS的任務
習題
第6章PSoC Creator
6.1項目創(chuàng)建
6.1.1創(chuàng)建新項目
6.1.2復制一個項目
6.1.3創(chuàng)建一個基于示例的項目
6.2設備編輯器子系統(tǒng)
6.2.1選擇并放置用戶模塊
6.2.2配置用戶模塊
6.2.3用戶模塊線路互連
6.2.4設置系統(tǒng)資源
6.2.5設計規(guī)則檢查
6.2.6生成應用程序文件
6.3應用程序編輯子系統(tǒng)
6.3.1文件系統(tǒng)
6.3.2編輯文件
6.3.3構建項目
6.4調試器子系統(tǒng)
6.5編程下載子系統(tǒng)
6.6項目設置
6.6.1代碼生成設置
6.6.2調試設置
6.6.3外設驅動庫設置
6.6.4工具鏈設置
6.6.5所有項目PDL版本的設置
習題
第三部分PSoC6實驗
第7章PSoC6實驗
7.1基礎實驗
7.1.1PWM實驗
7.1.2SmartI/O實驗
7.1.3UART與IPC實驗
7.1.4SPI實驗
7.1.5I2C實驗
7.1.6藍牙實驗
7.1.7比較器和運放實驗
7.1.8ADC實驗
7.1.9DAC和DMA實驗
7.1.10CapSense實驗
7.1.11EINK實驗
7.1.12FreeRTOS實驗
7.1.13Flash實驗
7.2提高實驗
7.2.1基于雙核的FreeRTOS和BLE實驗
7.2.2基于SPI和ADC的RGB LED顏色調節(jié)
7.3綜合實驗
7.3.1數字示波器
7.3.2信號發(fā)生器
7.3.3迷你車載冰箱溫控系統(tǒng)
7.3.4語音存儲回放系統(tǒng)
7.3.5安防短信報警系統(tǒng)
7.3.6超聲波測距系統(tǒng)
7.3.7溫濕度測量系統(tǒng)
7.3.8紅外脈搏表
7.3.9簡易大氣壓力表
7.3.10簡易光強計
7.4創(chuàng)新實驗
7.4.1機器蛇
7.4.2全地形多形態(tài)物流機器人
7.4.3多功能平衡車
7.4.4虛擬現實交互游戲
7.4.5室內環(huán)境檢測儀
第四部分PSoC6原理
第8章PSoC6內核
8.1PSoC6內核簡介
8.2中央處理器CPU子系統(tǒng)
8.2.1CPU簡介
8.2.2性能
8.2.3安全性
8.2.4啟動順序
8.3內部存儲器
8.4DMA控制器
習題
第9章PSoC6系統(tǒng)資源
9.1電源
9.1.1電源系統(tǒng)
9.1.2接地處理
9.2多時鐘源
9.2.1內部主振蕩器(IMO)
9.2.2外部晶振器(ECO)
9.2.3外部時鐘(EXTCLK)
9.2.4內部低速振蕩器(ILO)
9.2.5精密內部低速振蕩器(PILO)
9.2.6時鐘晶體振蕩器(WCO)
9.2.7鎖相環(huán)(PLL)和鎖頻環(huán)(FLL)
9.3睡眠和看門狗
9.3.1PSoC6工作模式
9.3.2看門狗定時器
9.4復位
9.4.1復位方式
9.4.2復位引腳XRES的使用
9.4.3復位的影響
習題
第10章PSoC6數字和模擬資源
10.1可編程數字資源
10.1.1通用數字模塊UDB
10.1.2串行存儲器接口SMIF
10.1.3SmartI/O
10.2固定功能數字資源
10.2.1定時器/計數器/PWM模塊 TCPWM
10.2.2串行通信模塊 SCB
10.3模擬資源
10.3.1低功耗比較器
10.3.2連續(xù)時間模塊
10.3.3逐次逼近型模數轉換器
10.3.4數模轉換器
習題
第11章PSoC6 其他資源
11.1可編程GPIO
11.2CapSense
11.3EINK
11.4BLE
11.5音頻子系統(tǒng)
11.6eFuse
習題
參考文獻
索引