计算机控制课件_第1页
计算机控制课件_第2页
计算机控制课件_第3页
计算机控制课件_第4页
计算机控制课件_第5页
已阅读5页,还剩561页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

控制器與電腦程式存儲電腦1.電腦完成任務是由事先編號的程式完成的;2.電腦的程式被事先輸入到記憶體中,程式運算的結果,也被存放在記憶體中。3.電腦能自動連續地完成程式。4.程式運行的所需要的資訊和結果可以通輸入\輸出設備完成。5.電腦由運算器、控制器、記憶體、輸入設備、輸出設備所組成。指令和數據都是二進位碼,存儲於記憶體之中,共用同一匯流排。在典型情況下,完成一條指令需要3個步驟,即:取指令、指令解碼和執行指令。存儲程式電腦(StoredProgramComputer)電腦的工作原理按照馮·諾依曼存儲程式的原理,電腦在執行程式時須先將要執行的相關程式和數據放入內記憶體中,在執行程式時CPU根據當前程式指針寄存器的內容取出指令並執行指令,然後再取出下一條指令並執行,如此迴圈下去直到程式結束指令時才停止執行。其工作過程就是不斷地取指令和執行指令的過程,最後將計算的結果放入指令指定的記憶體地址中。馮·諾依曼“電腦之父”和“博弈論之父馮·諾依曼體系結構指令寄存器控制器數據通道輸入輸出中央處理器記憶體程式指令0指令1指令2指令3指令4數據數據0數據1數據2哈佛體系結構指令寄存器控制器數據通道輸入輸出CPU程式記憶體指令0指令1指令2數據記憶體數據0數據1數據2地址指令地址數據馮諾依曼與哈佛結構的比較早期的微處理器大多採用馮·諾依曼結構,典型代表是Intel公司的X86微處理器。取指和取運算元都在同一匯流排上,通過分時複用的方式進行的。缺點是在高速運行時,不能達到同時取指令和取運算元,從而形成了傳輸過程的瓶頸。哈佛匯流排技術應用是以DSP和ARM為代表的。採用哈佛匯流排體系結構的晶片內部程式空間和數據空間是分開的,這就允許同時取指和取運算元,從而大大提高了運算能力。指令集CPU在設計時就規定了一系列與其硬體電路相配合的指令系統CPU執行計算任務時都需要遵從一定的規範,程式在被執行前都需要先翻譯為CPU可以理解的語言。這種規範或語言就是指令集。CISC和RISCCISC:複雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式,指令長度可變8/2原則:80%的程式只使用20%的指令大多數程式只使用少量的指令就能夠運行。RISC:精簡指令集(ReducedInstructionSetComputer)只包含最有用的指令,指令長度固定確保數據通道快速執行每一條指令使CPU硬體結構設計變得更為簡單處理器根據指令中給出的地址信息來尋找物理地址的方式CISC與RISC的數據通道IFIDALUMEMREG微操作通道開始退出CISC:尋址方式複雜IFIDREGALUMEM開始退出單通數據通道RISC:Load/Store結構ARM簡介

ARM是AdvancedRISCMachines的縮寫,它是一家微處理器行業的知名企業,該企業設計了大量高性能、廉價、耗能低的RISC(精簡指令集)處理器核。成立於1990年11月前身為Acorn電腦公司AdvanceRISCMachine(ARM)主要設計ARM系列RISC處理器內核授權ARM內核給生產和銷售半導體的合作夥伴ARM公司不生產晶片設計IP(IntelligenceProperty)另外也提供基於ARM架構的開發設計技術軟體工具,評估板,調試工具,應用軟體,匯流排架構,週邊設備單元,等等將技術授權給其他晶片廠商形成各具特色的ARM晶片...ARM簡介主流的ARM處理器華為手機P10與mata9麒麟960首次配備ARMCortex-A73CPU核心,小核心為A53,與上一代相比,CPU能效提升15%(單核10%、多核18%)三星S8Anewgenerationofthismicroarchitecture,namedKryo280,wasannouncedalongwiththeSnapdragon835chipsetinNovember2016.TheKryo280CPUcoreisnotaderivativeoftheoriginalKryo,butratherisacustomizedderivativeoftheARM'sCortex-A73.Thenewcoreimprovesintegerinstructionsperclock,whilehavinglowerperformanceatfloatingpointmathrelativetotheoriginalKryo.流水線技術流水線(Pipeline)技術:幾個指令可以並行執行提高了CPU的運行效率內部資訊流要求通暢流動解碼取指執行add解碼取指執行sub解碼取指執行cmp時間AddSubCmpSTM32系列微控制器ST意法半導體公司產品ARMCortex-M內核32位微控制器自2007年發佈以來,STM32在全球累計出貨已經超過16億顆。消費電子、物聯網、可穿戴設備、工業和電動控制等應用領域STM32系列微控制器ST意法半導體公司產品ARMCortex-M3內核32位微控制器高性能、低成本、低功耗、嵌入式應用STM32F100:超值型STM32F101:基本型(標準型)STM32F102:USB基本型STM32F103:增強型STM32F105或107:互聯型STM32L:超低功耗型STM32F1系列基本型與增強型配置的差異STM32F10x內部結構外設F103TxSTM32F103CxF103RxF103Vx閃存/K32643264128326412864128RAM/K10201020102020定時器通用2323233高級1通信SPI12122122I2C12122122USART23233233USB11111111CAN11111111通用I/O2632518012位同步ADC2x102x16CPU頻率72MHz工作電壓2.0V~3.6V工作溫度-40℃~+85℃/-40℃~+105℃封裝VFQFPN36LQFP48LQFP64LQFP/BGA100STM32F103xx中小容量型各系列外設資源STM32系列微控制器 STM32F103ZET6產品系列基於ARM的32位微控制器產品類型F=通用類型子系列101=基本型 102=USB基本型103=增強型 105或107=互聯型引腳數T=36 C=48 R=64 V=100 Z=144閃存容量4=16K 6=32K 8=64KB=128K C=256K D=384K E=512K封裝H=BGAT=LQFPU=VFQFPNY=WLCSP64溫度範圍6=商業級

-40~85℃7=工業級

-40~105℃內部代碼A或空STM32F10x內部結構處理器內核vs.MCUCortex‐M3簡化視圖STM32F10x內部結構STM32F10x內部結構四個主動單元M3內核的ICode匯流排(I-bus)、DCode匯流排(D-bus)、系統匯流排(S-bus)、DMA(DMA1、DMA2、以太網DMA)四個被動單元內部SRAM、內部閃存、FSMC(靈活靜態記憶體控制器)、AHB(AdvancedHighPerformanceBus,高級高性能匯流排)到APB(AdvancedPeripheralBus)橋STM32F10x內部結構ICode匯流排將M3內核的指令匯流排與FLASH指令介面相連,用於指令預取DCode匯流排將M3內核的數據匯流排與FLASH數據介面相連,常量加載和調試系統匯流排將M3內核的系統匯流排與匯流排矩陣相連,協調內核與DMA訪問3.2STM32F10x內部結構DMA匯流排將DMA的AHB主控介面與匯流排矩陣相連,協調CPU的DCode和DMA到SRAM、閃存、外設的訪問匯流排矩陣協調內核系統匯流排和DMA主控匯流排間的訪問仲裁,仲裁採用輪換演算法包含DCode、系統匯流排、DMA1和DMA2匯流排、被動單元STM32F10x內部結構AHB到APB橋兩個AHB/APB橋在AHB和兩個APB匯流排間提供同步連接APB1速度限於36MHz,APB2全速最高72MHzSTM32F10x內部結構STM32F10x內部結構STM32F10x內部結構時鐘結構時鐘結構內置振盪器可關閉輸出內部時鐘晶振可關閉或旁路晶振可關閉或旁路時鐘監視系統一旦HSE失效則自動切換至SYSCLK=HSI時鐘結構三種不同的時鐘源可被用來驅動系統時鐘(SYSCLK):HSI振盪器時鐘HSE振盪器時鐘PLL時鐘

時鐘結構2種二級時鐘源:40kHz低速內部RC,可以用於驅動獨立看門狗和通過程式選擇驅動RTC。RTC用於從停機/待機模式下自動喚醒系統。32.768kHz低速外部晶體也可用來通過程式選擇驅動RTC(RTCCLK)。當不被使用時,任一個時鐘源都可被獨立地啟動或關閉,由此優化系統功耗。

時鐘結構系統複位後,所有外設全部關閉,但SRAM和FLASH介面(FLITF)除外使用外設之前需打開該外設時鐘設置RCC——AHBENR寄存器參見PDF資料時鐘結構記憶體及記憶體映射I/O基於ARM內核的晶片具有許多的外設,這些外設訪問的標準方法是使用記憶體映射的I/O,為外設的每個寄存器都分配一個地址。通常,從這些地址裝載數據用於讀入,向這些地址保存數據用於輸出。有些地址的裝載和保存用於外設的控制功能,而不是輸入或輸出功能。注意:記憶體映射的I/O位置的操作不同於正常的記憶體位置的操作。通常,記憶體映射的I/O位置沒有高速緩存和無緩衝區。記憶體映射的寄存器

memorymappedregister記憶體一般是指通用的RAM,比如用於程式運行的SDRAM寄存器則是有專門用途的RAM,每個單片機系統都有專門的寄存器,不同的外設也有相應的寄存器寄存器不能隨便寫數據。同時位置(硬體上)與通用的RAM(記憶體)不在一起記憶體映射,就是把記憶體的地址給寄存器用,你要找這個寄存器,就用這個記憶體地址,然後單片機會幫你”映射“到你想找的寄存器控制單片機中外設的過程,實際上就是控制外設所對應的寄存器的過程(GPIO,ADC,USART,TIMER……)端口控制(配置)寄存器GPIOx_CRL:配置引腳低8位MODEx[1:0]:模式位。CNFx[1:0]:引腳配置位。

GPIO引腳功能配置表引腳功能CNF1CNF0MODE[1,0]輸入模擬輸入0000浮空輸入1上/下拉輸入10保留11通用輸出推挽0001、10、11(10、2、50MHz)開漏1複用輸出推挽10開漏1存儲組織:Cortex-M3的存儲系統採用統一編址方式,小端方式4GB的線性地址空間內,尋址空間被分成8個主塊block0-block7每塊512MB片內Flash:從0x00000000開始片內SRAM:從0x20000000開始STM32存儲結構存儲組織:代碼空間數據空間位段、位段別名寄存器片上外設外部記憶體外部外設存儲結構存儲結構地址範圍固定分配給處理器系統控制寄存器、位段區域、位段別名存儲結構SRAM最大64KB地址範圍:0x20000000–0x2000FFFF存儲結構片上外設地址映射:存儲結構GPIO(GeneralPurposeInputOutput)

GPIO,英文全稱為General-PurposeIOports,也就是通用IO口。沒有預先被設定用途,並且默認狀態下不被使用GPIO產品能夠提供額外的控制和監視功能在嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部設備/電路見STM32F103手冊“3Pinoutsandpindescriptions”STM32引腳中的GPIOSTM32F10x系列最多有7個16位並行I/O口:PA、PB、PC、PD、PE、PF、PG都是複用的,最少有2種功能,最多有6種功能

PAPBPCPDPEPFPG5.1通用輸入輸出口(GPIO)GPIO的基本結構GPIO的工作模式GPIO的主要寄存器介紹GPIO的簡單應用舉例GPIO使用中的注意事項PAPBPEPF5.1通用輸入輸出口(GPIO)GPIO的基本結構GPIO的工作模式GPIO的主要寄存器介紹GPIO的簡單應用舉例GPIO使用中的注意事項

PCPDPGSTM32的GPIO一覽共7x16個I/O口PA0~PA15PB0~PB15PC0~PC15PD0~PD15PE0~PE15PF0~PF15PG0~PG15GPIO的基本結構GPIO的工作模式輸入模式浮空輸入上拉輸入下拉輸入模擬輸入輸出模式通用開漏輸出通用推挽輸出複用推挽輸出複用開漏輸出GPIO的兩種映射外部中斷映射成為外部中斷源,外界在此GPIO上產生外部事件,來實現對STM32內部程式的介入第2功能映射切換成某個外部設備的功能IO口重映射屬於第2功能映射的拓展特性GPIO的外部中斷映射每一個GPIO都可以成為中斷,中斷優先順序可設置可編程控制GPIO中斷遮罩中斷發生邊沿觸發(上升沿、下降沿、雙邊沿)電平觸發(高電平、低電平)GPIO的第二功能映射引腳的其他功能A/D輸入、D/A輸出計數或時鐘輸入/輸出串行數據、時鐘、握手、片選,等輸入/輸出USART、IIC、SPI、IIS、USB、JTAG等匯流排(FSMC、SD數據、地址、控制)系統啟動資訊輸入等GPIO工作模式—浮空輸入GPIO的鉗位功能—輸入輸入時被鉗位到-0.6~3.9v(VDD+VD1)GPIO的工作模式—上拉輸入下拉輸入模式模擬輸入模式GPIO工作模式—開漏輸出推挽輸出T1和T2交替導通較強的電流輸出能力開漏輸出沒有上拉電晶體輸出1時斷開,輸出0時接地開漏的特點利用外部電路的驅動能力,減少IC內部的驅動當IC內部MOSFET導通時,IC內部僅需很小的柵極驅動電流可以將多個開漏輸出的Pin,連接到一條線上,形成“與”邏輯關係開漏的特點PIN_A、PIN_B、PIN_C任意一個變低後,開漏線上的邏輯就為0了。這也是I2C,SMBus等匯流排判斷匯流排佔用狀態的原理。GPIO的工作模式輸入模式浮空輸入上拉輸入下拉輸入模擬輸入輸出模式通用開漏輸出通用推挽輸出複用推挽輸出複用開漏輸出GPIO的功能小結GPIO可以被設置為輸入或者輸出GPIO可以被使能和禁止輸入值是可讀的(high=1,low=0)輸出值是可寫/可讀的常用於信號採集、中斷和通信STM32中GPIO的使用需要依賴多個寄存器的操作GPIOx_CRL:端口配置低寄存器GPIOx_CRH:端口配置高寄存器GPIOx_IDR:端口輸入寄存器GPIOx_ODR:端口輸出寄存器GPIOx_BSRR:端口位設置/清除寄存器GPIOx_BRR:端口位清除寄存器GPIOx_LCKR:端口配置鎖存寄存器

寄存器配置在《STM32中文參考手冊V10》的8.2節有詳細講解。GPIO輸入輸出配置相關寄存器GPIO寄存器的格式1、端口控制(配置)寄存器

GPIOx_CRL、GPIOx_CRH2、端口數據輸入寄存器

GPIOx_IDR(低16位有效)3、端口數據輸出寄存器

GPIOx_ODR(低16位有效)4、端口位設置/清除寄存器

GPIOx_BSRR(高16位清0,低16位設置)

高16位各位寫1清0,低16位寫1置1;寫0不影響5、端口位清除寄存器

GPIOx_BRR(低16位寫1清0,寫1不影響)6、端口配置鎖存寄存器

GPIOx_LCKR(低16位有效)

引腳功能CNF1CNF0MODE[1,0]輸入模擬輸入0000浮空輸入1上/下拉輸入10保留11通用輸出推挽0001、10、11(10、2、50MHz)開漏1複用輸出推挽10開漏1GPIO引腳功能配置表位操作運算符含義&按位與|按位或^按位異或~取反<<左移>>右移位操作對寄存器設值對某幾個位進行設值先對需要設值的為用&操作符進行清零操作然後用|操作符設值通過&和|對GPIO寄存器進行操作先将第4-7为清0GPIOA->CRL&=0xFFFFFF0F然后在与需要的值进行|或运算GPIOA->CRL|=0x00000040移位操作提高代碼可讀性GPIOx->BSRR=(((uint32_t)0x01<<pinpos);將BSRR寄存器的第pinpos位設置為1通過左移而不是直接設固定值是為了提高代碼的可讀性以及可重用性GPIOx->BSRR=0x0030移位操作提高代碼可讀性GPIOA->ODR|=1<<55代表第5個端口1告訴我們設置值為1define宏定義

#define識別字字串#defineSYSCLK_FREQ_72MHz72000000#definePAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //輸出#definePAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //輸入define宏定義

#definePERIPH_BASE ((uint32_t)0x40000000)#defineAPB2PERIPH_BASE(PERIPH_BASE+0x10000)#defineGPIOA_BASE (APB2PERIPH_BASE+0x0800)#defineGPIOA ((GPIO_TypeDef*)GPIOA_BASE)define宏定義

#defineGPIOA ((GPIO_TypeDef*)GPIOA_BASE)#defineGPIOB ((GPIO_TypeDef*)GPIOB_BASE)……

上面的宏定義可以理解為下麵的形式:GPIO_TypeDef*GPIOA=(GPIO_TypeDef*)GPIOA_BASE;

typedef類型別名GPIO寄存器組結構體定義typedefstruct{ __IOuint32_tCRL; __IOuint32_tCRH; __IOuint32_tIDR; __IOuint32_tODR; __IOuint32_tBSRR; __IOuint32_tBRR; __IOuint32_tLCKR;}GPIO_TypeDef;typedef類型別名定義為枚舉數據類型GPIOSpeed_TypeDeftypedefenum{ GPIO_Speed_10MHz=1, GPIO_Speed_2MHz, //=2 GPIO_Speed_50MHz //=3}GPIOSpeed_TypeDef;volatile

#define

__I

volatile

/*defines'readonly'permissions*/

#define

__O

volatile

/*<defines'writeonly'permissions*/#define

__IO

volatile

/*!<defines'read/write'permissions

*/指示編譯器不要因優化而省略此指令,必須每次都直接讀寫其值。stm32f10x.h主要是系統寄存器定義申明以及包裝記憶體操作非常多的結構體以及宏定義

stm32f10x.hstm32f10x.hstm32f10x.h固件庫固件库首先将各个设备所有的寄存器的配置字进行预先定义在stm32f10x.h文件中然后封装在结构或枚举变量中(存在相对应的stm32f10x_xxx.c,其中xxx代表gpio,spi,exti等外设模块)待用户调用对应的固件库函数时,会根据用户传入的参数从这些封装好的结构体或枚举变量中取出对应的配置字最后写入寄存器中,完成对底层寄存器的配置。GPIO固件庫GPIO相關的函數和定義分佈在固件庫檔stm32f10x_gpio.c和頭檔stm32f10x_gpio.h檔中。

stm32f10x_gpio.cstm32f10x_gpio.hstm32f10x_gpio.hstm32f10x_gpio.hstm32f10x_gpio.hGPIO庫函數1、GPIO_Init()函數 初始化2、GPIO_DeInit() 複位3、GPIO_SetBits()函數 位置14、GPIO_ResetBits()函數 位清05、GPIO_WriteBits()函數 寫位,寫1/06、GPIO_Write()函數 寫端口7、GPIO_ReadInputData()8、GPIO_ReadInputDataBit()這些函數在“stm32f10x_gpio.c”中定義庫函數寄存器直接地址通用與專用的區別?GPIO是通用的器件,理論上可以用於模仿其他外設的工作方式IIC匯流排時序開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。

結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。數據傳輸:SDA線上的數據在時鐘“高”期間必須是穩定的,只有當SCL線上的時鐘信號為低時,數據線上的“高”或“低”狀態才可以改變。輸出到SDA線上的每個位元組必須是8位,每次傳輸的位元組不受限制,但每個位元組必須要有一個應答ACK。硬體與軟體在條件允許的情況下,儘量外部專用電路,減少CPU的運算量。中斷中斷的基本問題什么是中断为什么需要中断中断来了之后,CPU需要做什么?中断完了之后,怎么办什麼是中斷指當出現需要時,CPU暫時停止當前程式的執行轉而執行處理新情況的程式和執行過程。形成中斷的基本元素正在執行的程式中斷事件(中斷源)“輪詢”模式早期的CPU處理外設的事件(比如接收鍵盤輸入),往往採用“輪詢”的方式。即CPU像個查崗的一樣輪番對外設順序訪問。

CPU對外設的輪詢

键盘鼠标打印机串口USB“輪詢”方式的缺點CPU和外設不能同時工作系統效率低應急能力差CPU處理中斷示意圖中斷服務程式發申請中斷服務程式發申請外設CPU中斷模式CPU不主动访问外设设备给CPU发送中断请求CPU放下正在进行的工作而去处理这个外设的请求。处理完中断后,CPU返回去继续执行中断以前的工作。中斷的適用場景中斷的目的應急事件提高效率中斷的適用場景main(){ while(1) { //數碼管的值的更新函數 //數碼管刷新函數 //按鍵判斷函數 }}移出主函數改成中斷中斷的適用場景中斷的目的應急事件提高效率不常發生的緊急事件Cortex的中斷機制中斷管理器內嵌到內核中嵌套向量中斷控制器(NestedVectoredInterruptController,NVIC)不可遮罩中斷

(NMI)外部中斷內嵌的好處加快回應速度標準化Cortex‐M3簡化視圖STM32的中斷具備Cortex系列的標準68個可遮罩中斷通道(不包含16個Cortex™-M3的中斷線)每一個GPIO口都可以作為中斷源如何將ARM規定的中斷標準,與STM32的外設相聯系?中斷優先順序中断申请是随机的,有时会出现多个中断源同时提出中断申请。CPU每次只能响应一个中断源的请求。CPU会根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序。STM32中斷優先順序16个可编程的优先等级使用了4位中断优先级,即中断优先级设置8bit中的高4位4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。

優先順序分組情況第0组所有4位用于指定响应优先级第1组最高1位用于指定抢占式优先级,最低3位用于指定响应优先级第2组最高2位用于指定抢占式优先级,最低2位用于指定响应优先级第3组最高3位用于指定抢占式优先级,最低1位用于指定响应优先级第4组所有4位用于指定抢占式优先级,搶佔優先順序與回應優先順序抢占式优先级高抢占式优先级的中断事件会打断当前的主程序/中断程序运行抢占式优先响应,俗称中断嵌套响应优先级抢占式优先级相同的情况下,高响应优先级的中断优先被响应(非嵌套情况)在抢占式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应舉個例子主程序:看書A中斷:媽媽來電話[0,000]B中斷:老師來電話[1,000]C中斷:室友來電話[1,001]S中斷:女友來電話STM32外部中基斷常用庫函數STM32F103中斷線基礎概念每个IO口都可以作为外部中断的输入口中断控制器支持19个外部中断/事件请求每个中断设有状态位,每个中断/事件具有独立的触发和屏蔽设置中斷向量表作用中断向量表界定了不同类型的中断为中断源提供了唯一的地址地址指向中断服务程序內核中的中斷向量表中斷向量表中斷向量表中斷向量表中斷向量表中斷向量表作用中断向量表界定了不同类型的中断为中断源提供了唯一的地址地址指向中断服务程序地址範圍固定分配給處理器系統控制寄存器、位段區域、位段別名映射結構19個外部中斷線线0-15对应外部I/O口的输入中断线16连接到PVD(可编程电压监测器)输出线17连接到RTC闹钟事件线18连接到USB唤醒事件16條IO中斷線與引腳的對應GPIOx.0~GPIOx.15X=(A,B,C,D,E,F,G)一条中断线,7个IO口将中断线配置到相应GPIO中STM32外部中斷

接APB2匯流排中斷信號傳輸事件信號傳輸STM32外部中斷/事件如何控制?知道了STM32外部中斷的機制,那麼如何控制呢?GPIOEXTINVICSTM32外部中斷符號寄存器名(功能)EXTI_IMR中斷遮罩寄存器EXTI_EMR事件遮罩寄存器EXTI_RTSR上升沿觸發選擇寄存器EXTI_FTSR下降沿觸發選擇寄存器EXTI_SWIER中斷與事件軟體觸發寄存器EXTI_PR中斷與事件掛起(標誌)寄存器EXTI外中斷控制寄存器主要函數

1)GPIO引腳初始化 配置端口時鐘,初始化LED、按鈕引腳

2)外部中斷初始化 配置AFIO時鐘,配置中斷線,外中斷初始化:中斷線、中斷模式、觸發方式、中斷線使能

3)NVIC初始化

設置優先順序組 設置中斷號、佔先和次優先順序、使能中斷

4)外部中斷服務函數

判斷中斷、設置按鍵值、等待鍵釋放、清除中斷標誌

5)主函數 調用delay、GPIO、EXTI、NVIC初始化函數 死迴圈等待中斷:while(1)及循環體應用實例1:按鍵中斷

一、電路

4個按鈕均為上拉按鈕未按下時引腳輸入為高按鈕按下時,引腳輸入為低PA0PC13PA8PD3WAKUPTAMPERUSER1USER2+3.3v引腳10K×4

設置引腳為浮空輸入或上拉輸入 設置中斷觸發方式為下降沿觸發功能設計要求按鈕外中斷線中斷通道優先順序中斷指示上邊K1EXTI線0EXTI0204個LED向上迴圈K2EXTI線13EXTI15_10212個LED同時閃K3EXTI線8EXTI9_5224個LED同時閃下邊K4EXTI線3EXTI3234個LED向下迴圈

1、設置按鈕觸發中斷

2、在中斷中識別按鍵

3、中斷不嵌套

4、擬定中斷優先順序 選擇2組,搶佔級為2,回應優先順序如下表。

5、中斷後的指示 如下表程式設計

1、GPIOx引腳初始化(按鈕引腳)

voidGPIO_KeyInit(void){ GPIO_InitTypeDefGPIO_InitStructrure; //初始化變數

//時鐘使能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD,ENABLE); //PA0PA8浮空輸入

//K1、K3 GPIO_InitStructrure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_8; GPIO_InitStructrure.GPIO_Mode=GPIO_Mode_IN_Floatting; GPIO_InitStructrure.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStructrure);程式設計 //PC13浮空輸入

//K2 GPIO_InitStructrure.GPIO_Pin=GPIO_Pin_13; GPIO_Init(GPIOC,&GPIO_InitStructrure);

//PD3浮空輸入初始化

//K4 GPIO_InitStructrure.GPIO_Pin=GPIO_Pin_3; GPIO_Init(GPIOD,&GPIO_InitStructrure);}程式設計

2、外部中斷線初始化voidEXTIx_Init(void){ EXTI_InitTypeDef

EXTI_InitStructure;

//使能複用功能時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

//GPIOA.0中斷線以及中斷初始化配置,下降沿觸發//K1 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); EXTI_InitStructure.EXTI_Line=EXTI_Line0; EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure);程式設計//GPIOC.13中斷線以及中斷初始化配置下降沿觸發//K2 GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource13); EXTI_InitStructure.EXTI_Line=EXTI_Line13; EXTI_Init(&EXTI_InitStructure); //GPIOA.8中斷線以及中斷初始化配置下降沿觸發//K3 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8); EXTI_InitStructure.EXTI_Line=EXTI_Line8; EXTI_Init(&EXTI_InitStructure); //GPIOD.3中斷線以及中斷初始化配置下降沿觸發//K4GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource3); EXTI_InitStructure.EXTI_Line=EXTI_Line3; EXTI_Init(&EXTI_InitStructure);}EXTI對應的中斷號程式設計

3、NVIC初始化voidNVIC_EXTIInit(void){

NVIC_InitTypeDef

NVIC_InitStructure;//初始化結構體//中斷優先順序分組2:2位搶佔優先順序,2位回應優先順序NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//在NVIC中對EXTI0初始化//按鍵K1 NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x00; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);NVIC_InitTypeDefNVIC_InitTypeDef的結構typedefstruct{

u8NVIC_IRQChannel;

//外設中斷號

u8NVIC_IRQChannelPreemptionPriority;

//搶佔優先順序

u8NVIC_IRQChannelSubPriority;

//回應優先順序

FunctionalStateNVIC_IRQChannelCmd;

//使能和失能中斷}NVIC_InitTypeDef;程式設計//在NVIC中對EXTI13初始化

//按鍵K2 NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01; NVIC_Init(&NVIC_InitStructure);//在NVIC中對EXTI8初始化//K3 NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x02; NVIC_Init(&NVIC_InitStructure);//在NVIC中對EXTI3初始化

//K4 NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;

NVIC_Init(&NVIC_InitStructure);

}程式設計 4、外部中斷服務函數——外中斷0服務程式

u8key_num=1; //鍵值voidEXTI0_IRQHandler(void)

//K1按鍵中斷{ delay_ms(10);

//去抖動

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0) { key_num=1; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)); } delay_ms(10); //去抖動

EXTI_ClearITPendingBit(EXTI_Line0);//清除LINE0上的中斷標誌位}注意:中斷服務函數都包含在“stm32f10x_it.c”檔中,用的時候只需添加指令即可!程式設計 4、外部中斷服務函數——外中斷13服務程式

voidEXTI15_10_IRQHandler(void)

//K2按鍵中斷{ delay_ms(10);

//去抖動

if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==0) { key_num=2; while(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)); } delay_ms(10); //去抖動

EXTI_ClearITPendingBit(EXTI_Line13); //清除LINE13上的中斷標誌位}程式設計 4、外部中斷服務函數——外中斷8服務程式

voidEXTI9_5_IRQHandler(void)

//K3按鍵中斷{ delay_ms(10);

//去抖動

if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)==0) { key_num=3; while(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)); } delay_ms(10); //去抖動

EXTI_ClearITPendingBit(EXTI_Line8); //清除LINE8上的中斷標誌位}程式設計 4、外部中斷服務函數——外中斷3服務程式

voidEXTI3_IRQHandler(void)

//K4按鍵中斷{ delay_ms(10);

//去抖動

if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)==0) { key_num=4; while(!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)); } delay_ms(10); //去抖動

EXTI_ClearITPendingBit(EXTI_Line3); //清除LINE3上的中斷標誌位}程式設計5、主函數intmain(void){ delay_init();

//延時函數初始化 GPIO_LEDInit(); //LED、Beep引腳初始化 GPIO_KeyInit(); //按鍵引腳初始化 EXTI_KeyInit();

//外中斷初始化 NVIC_EXTIInit(); //給NVIC配置外中斷 while(1) {while(1) { if(key_num==1) //K1按下

led_up(); //4個LED向上迴圈亮

elseif(key_num==2) //K2按下

led_2flash(); //DS1、DS2與DS3、DS4交替亮

elseif(key_num==3) //K3按下

led_4flash(); //4個LED同時閃爍

elseif(key_num==4) //K4按下

led_down(); //4個LED向下迴圈亮

}}

定時器通用定時器通用定時器是一個通過可編程預分頻器驅動的16位自動裝載計數器構成。定時功能計數功能輸入捕獲輸出匹配通用定時器的主要特性116位向上,向下,向上/向下自動裝載計數器16位可編程預分頻器,計數器時鐘頻率的分頻係數為1~65535之間的任意數值4個獨立通道輸入捕獲輸出比較PWM脈衝波單脈衝波模式通用定時器的主要特性2使用外部信號控制定時器和定時器互連的同步電路如下事件發生時產生中斷/DMA更新:計數器向上溢出/向下溢出觸發事件:計數器啟動,停止或者初始化輸入捕獲輸出比較時基單元關鍵寄存器計數器寄存器(TIMx_CNT)

预分频器寄存器(TIMx_PSC)

自动装载寄存器(TIMx_ARR)

時基單元總括TIMx_ARR=0x36分頻因數=1TIMx_ARR=0x36分頻因數=2TIMx_ARR=0x36分頻因數=4TIMx_ARR=0x36分頻因數=n向下計數,分頻係數為1向下計數,分頻係數為2向下計數,分頻係數為4向下計數,分頻係數為n自動重新裝載寄存器其他常用外設ADCDACDMADSP模組記憶體介面各類通信介面多媒體外設……電腦閉環控制系統原理組成

電腦閉環控制系統的原理組成--是把控制器用控制電腦即微型電腦及A/D(模/數)轉換介面與D/A(數/模)轉換介面代替,由於電腦採用的是數字信號傳遞,而一次儀錶多採用模擬信號傳遞,因此需要有A/D轉換器將模擬量轉換為數字量作為其輸入信號,以及D/A轉換器將數字量轉換為模擬量作為其輸出信號。

圖1-2電腦控制系統原理圖

匯流排匯流排匯流排的基本概念內部匯流排外部匯流排匯流排匯流排就是一組信號線的集合,它定義了各引線的物理、功能、電氣和機械特性,使電腦系統內部的各部件之間以及外部的各系統之間建立信號聯繫,進行數據傳遞和通信。匯流排的特性01機械特性插頭與插座的幾何尺寸、形狀、引腳個數及排列順序02功能特性每一根信號線的功能,這根線是用來傳地址、數據還是指令?03電氣特性指每一根信號線上的信號方向及表示信號有效的電平範圍04時間特性指在匯流排操作過程中每一根信號線上信號什麼時候有效匯流排的基本特性匯流排的分類(1)按照匯流排內部資訊傳輸的性質,匯流排可分為數據匯流排:DB用於傳送數據資訊地址匯流排:AB是專門用來傳送地址的控制匯流排:CB控制匯流排包括控制、時序和中斷信號線電源匯流排:PB用於向系統提供電源DBABCBPB數據匯流排數據匯流排的位數是電腦的一個重要指標,通常與微處理的字長相一致8位單片機805116位單片機MSP430

32位微處理器STM3264位CPUi7-6700k數據匯流排寬度往往與CPU內部寄存器和運算單元有著聯繫,匯流排寬度越大,計算能力越強

任天堂8位紅白機8位機上運行的遊戲世嘉的MEGADRIVE16位機遊戲SONY的PlayStation32位遊戲64位遊戲地址匯流排地址匯流排的位數決定了CPU可直接尋址的記憶體空間大小比如8位微機的地址匯流排為16位,則其最大可尋址空間為216=64KB,16位微型機的地址匯流排為20位,其可尋址空間為220=1MB地址映射,簡單說就是,將一個記憶體地址,轉換對應到相應的物理存儲單元,這個過程,就叫做映射

SDRAM的地址映射SDRAM行有效時序圖SDRAM列有效時序圖匯流排的分類(2)按照匯流排在系統結構中的層次位置,匯流排可分為片內匯流排(On-ChipBUS)在積體電路的內部,用來連接各功能單元的資訊通路內部匯流排(InternalBus)用於電腦內部模組(板)之間通信外部匯流排(ExternalBus):又稱通訊匯流排用於電腦之間或電腦與設備之間通信片內匯流排在積體電路的內部,用來連接各功能單元的資訊通路WaferanddieSTM32晶片內部示意圖M3內核的ICode匯流排(I-bus)、DCode匯流排(D-bus)、系統匯流排(S-bus)內部匯流排用於電腦內部模組(板)之間通信DBABCBPB外部匯流排用於電腦之間或電腦與設備之間通信匯流排的分類(3)根據匯流排的數據傳輸方式,匯流排可分為並行匯流排:每個信號都有自己的信號線串行匯流排:所有信號複用一對信號線串行與並行並行通信傳輸中有多個數據位,同時在兩個設備之間傳輸串行數據傳輸時,數據是一位一位地在通信線上傳輸利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換利用fifo的串並轉換SATA與PATASATA=SerialATAPATA=ParallelATASATA與PATA誰快?SATA傳輸線的傳輸速度比PATA要快了近30倍。PATA必須在數據線中一次傳輸16個信號,如果信號沒有及時到達或是發生延遲,錯誤數據就會產生。因此比特流傳輸的速度必須減緩以糾正錯誤。而SATA一次只傳輸一個比特的數據,此時比特流的傳遞速度要快得多。不同硬碟介面參數比較版本帶寬速度數據線最大長度SATA3.06Gb/s600MB/s2米SATA2.03Gb/s300MB/s1.5米SATA1.01.5Gb/s150MB/s1米PATA1Gb/s133MB/s0.5米串行數據通信的方向電腦匯流排結構示意圖匯流排頻率即匯流排工作時鐘頻率,單位為MHz,它是影響匯流排傳輸速率的重要因素之一。匯流排寬度又稱匯流排位寬,是匯流排可同時傳輸的數據位數,用bit(位)表示,如8位、16位、32位等。顯然,匯流排的寬度越大,它在同一時刻就能夠傳輸更多的數據。匯流排帶寬匯流排主要性能指標又稱匯流排傳輸率,表示在匯流排上每秒傳輸位元組的多少,單位是MB/s。影響匯流排傳輸率的因素有匯流排寬度、匯流排頻率等。匯流排帶寬(MB/S)=1/8×匯流排寬度×匯流排頻率匯流排同步方式可分為同步方式和非同步方式。在同步方式下,匯流排上主模組與從模組進行一次數據傳輸的時間是固定的,並嚴格按照系統時鐘來統一定時主模組、從模組之間的傳輸操作。非同步方式沒有公共的時鐘標準,不要求所有部件嚴格的統一操作時間,是按字元傳輸的。非同步通信非同步雙方不需要共同的時鐘,也就是接收方不知道發送方什麼時候發送,所以在發送的資訊中就要有提示接收方開始接收的資訊,如開始位,結束時有停止位每幀內部各位均採用固定的時間間隔,而幀與幀之間的間隔時隨即的。接收機完全靠每一幀的起始位和停止位來識別字元時正在進行傳輸還是傳輸結束。同步與非同步通信比較時鐘一致性數據的單位同步的方式對時序的要求傳輸效率

什麼時候採用同步,什麼時候採用非同步?同步與非同步的優缺點同步傳輸的優點是效率比非同步高的多,因為它節省了很多同步資訊;缺點是報文過大時,由於收發雙方時鐘不能嚴格一致,會出現傳輸不同步的現象,產生錯誤。非同步傳輸的缺點是每個字元都要加同步資訊,浪費帶寬;優點是可以嚴格保證傳輸是同步的。匯流排複用採用多路複用技術,可以減少匯流排的數目。8051單片機,地址空間是16bit,數據寬度8bit,而高位地址匯流排8bit是與數據8bit複用的。所以總共還是16根線。匯流排的負載能力匯流排的負載能力即驅動能力,是指當匯流排接上負載(介面設備)後必須不影響匯流排輸入/輸出的邏輯電平。例如PC匯流排中的輸出信號,在輸出低電平要吸收電流(由負載流入信號源),以IOL表示,這時的負載能力就是指當它吸收了規定電流時,仍能保持邏輯低電平。輸出高電平的負載能力以IOH表示,這是一個由信號源流向負載的輸出電流。當輸出電流超過規定值時,輸出邏輯電平會降低,甚至變到閾值以下。匯流排的控制匯流排的控制機制為了保證同一時刻只能有一個設備獲得匯流排使用權具有控制功能的設備稱為主設備不具控制功能的為從設備多個主設備發送匯流排請求時,由主線控制器判斷匯流排傳輸過程

由需要使用匯流排的主模組(或主設備)提出申請,經匯流排仲裁機構決定在下一傳輸週期是否能獲得匯流排使用權;取得了使用權的主模組,通過匯流排發出本次打算訪問的從模組(或從設備)的存儲地址或設備地址及有關命令,啟動參與本次傳輸的從模組;主模組和從模組進行數據交換,數據由源模組發出經數據匯流排流入目的模組;

主模組的有關資訊均從系統匯流排上撤除,讓出匯流排使用權。

申請分配階段尋址階段數據傳輸階段結束階段常用內部匯流排電腦內部功能範本之間進行通信的通道,是構成電腦系統的內部資訊樞紐PC匯流排(IBMPC匯流排的簡稱)ISA匯流排ISA(工業標準架構:IndustryStandardArchitecture)匯流排

最早的PC匯流排,由IBM提出最開始是8bit,後來發展到16bit,工作頻率僅有8MHz,後被PCI匯流排取代。PCI匯流排PCI是PeripheralComponentInterconnect(外設部件互連標準)的縮寫PCI是由Intel公司1991年推出的一種局部匯流排

最早提出的PCI匯流排工作在33MHz頻率,傳輸帶寬達到了133MB/s(33MHzX32bit/8),基本上滿足了當時處理器的發展需要對性能日益強大的顯卡則無法滿足其需求PCI電腦系統結構圖AGPAGP(AccelerateGraphicalPort),加速圖形介面

英特爾於1996年7月正式推出了AGP介面,它是一種顯示卡專用的局部匯流排。AGP標準在使用32位匯流排時,有66MHz和133MHz兩種工作頻率,最高數據傳輸率為266Mbps和533Mbps。最高規格的AGP8X模式下,數據傳輸速度達到了2.1GB/s。使用了AGP的系統結構圖PCI-EPCIExpress

在2001年底,包括Intel、AMD、DELL、IBM在內的20多家業界主導公司開始起草新技術的規範,並在2002年完成,對其正式命名為PCIExpressPCI-E16X頻率達到2.5GHz,帶寬為8.0GB/sPC中匯流排發展示意圖外部匯流排外部匯流排又稱通信匯流排,用於電腦之間、電腦與遠程終端、電腦與外部設備以及電腦與測量儀器儀錶之間的通信。該類匯流排不是電腦系統的已有匯流排,而是利用電子工業或其他領域已有的匯流排標準。常用外部匯流排IEEE-488匯流排RS-232-C匯流排RS-422和RS-485匯流排通用串行匯流排(USB)IEEE-488匯流排IEEE-488匯流排是一種並行外部匯流排,專門用於電腦與測量儀器、輸入輸出設備,以及這些儀器設備之間的並行通信。IEEE(電氣和電子工程師協會),Instituteof

Electrical

andElectronics

EngineersWIFI~無線局域網絡制定的標準802.11ZigbeeRFIDBluetooth~短程無線通信IEEE802.15IEEE-488匯流排IEEE-488是1970年由美國惠普公司開發的並行通訊匯流排,匯流排上連接的設備有三種,工作方式也有三種:控者(“控制”方式):每時只能有一個聽者(“受話”方式):同時可有多個講者(“送話”方式):每時只能有一個IEEE-488匯流排的連接示意圖DIO1~

DIO8DAVNRFDNDAC

EOI

IFCATNSRQREN

設備A

控者講者聽者

設備B

講者聽者

電壓表1

設備C

講者聽者

設備D

聽者

數據線數據控制線接口管理線電壓表2印表機

電腦IEEE-488匯流排的信號分配IEEE-488共定義了24根線(其中8根地線)數據匯流排DIO1~DIO8數據傳送控制線數據有效線DAV、未準備好接受數據線NRFD、未接受好數據線NDAC介面管理匯流排介面清除線IFC、服務請求線SQR、注意線ATN、結束或識別線EQI、遠程允許REN使用IEEE-488的約定數據傳輸率不得超過每秒1M位元組匯流排上的設備數不得多於15個電纜總長度不超過20m,兩設備間不超過2m採用負邏輯IEEE-488匯流排數據傳送時序採用非同步方式,利用三條控制線進行握手聯絡,實現三線握手的數據傳輸數據有效線未準備好線未接收好線RS-232-C匯流排RS-232-C匯流排是一種串行外部匯流排,專門用於數據終端設備DTE和數據通信設備DCE之間的串行通信。串口的機械特性早期25針,現在9針最簡單的RS-232C數據通信RS-232C匯流排的電氣特性電氣連接方式EIA電平,規定:“1”的邏輯電平在-3V~-15v之間,“0”的邏輯電平在+3V~+15V之間。EIA即ElectronicIndustriesAssociation電子工業協會,美國電子行業標準。串口助手最高通信速率為115200bpsRS-232C標準規定通信距離應小於15m。串列傳輸速率與比特率每秒鐘通過通道傳輸的資訊量稱為位傳輸速率,也就是每秒鐘傳送的二進位位數,簡稱比特率。比特率表示有效數據的傳輸速率,用b/s、bit/s、比特/秒,讀作:比特每秒。串列傳輸速率反映的是每秒傳輸的數據元(碼元)個數。串列傳輸速率與比特率如果在數字傳輸過程中,用0V表示數字0,5V表示數字1,那麼每個碼元有兩種狀態0和1.每個碼元代表一個二進位數字。此時的每秒碼元數和每秒二進位代碼數是一樣的,這叫兩相調製,串列傳輸速率等於比特率。串列傳輸速率與比特率如果在數字傳輸過程中,0V、2V、4V和6V分別表示00、01、10和11,那麼每個碼元有四種狀態00、01、10和11.每個碼元代表兩個二進位數字。此時的每秒碼元數是每秒二進位代碼數是一半的,這叫四相調製,串列傳輸速率等於比特率一半。通過不同的相位來表示信號QPSKRS-442RS-422由RS-232C發展而來,一種單機發送、多機接收的單向、平衡傳輸的匯流排標準RS-422標準規定了雙端電氣介面型式,使用雙端線傳送信號。它通過傳輸線驅動器,把邏輯電平變換成電位差,完成始端的資訊傳送;通過傳輸線接收器,把電位差轉變成邏輯電平,實現終端的資訊接收有4根信號線,兩根發送、兩根接收,RS-422的收與發是分開的,支持全雙工的通訊方式RS-422的最大傳輸距離為1200m,最大傳輸速率為10Mbps。RS-422電氣連接圖發送端AB間的電壓差+2~+6v1-2~-6v0差分傳輸的說明接收端AB間的電壓差大於+200mv1小於-200mv0抗干擾性大大增強!!!RS-485RS-485是一種多發送器的電路標準,它是RS-422A性能的擴展,是真正意義上的匯流排標準。允許在二根導線(匯流排)上掛接32臺RS--485負載設備。負載設備可以是發送器、被動發送器、接收器或組合收發器(發送器和接收器的組合)RS-422不能採用匯流排方式通信LVDSLvds:Low-VoltageDifferentialSignaling低電壓差分信號LVDS介面又稱RS-644匯流排介面,是20世紀90年代才出現的一種數據傳輸和介面技術一般在工業領域或行業內部使用。廣泛應用於主板顯示和液晶屏介面。標準推薦的最高數據傳輸速率是655MbpsVGA轉LVDS比較規定RS232RS422R485工作方式單端差分差分節點數1收、1發1發10收1發32收最大傳輸電纜長度50英尺400英尺400英尺最大傳輸速率20Kb/S10Mb/s10Mb/s通信方式全雙工全雙工半雙工信號線數目2根4根2根串行匯流排協議舉例USB通用串行匯流排(UniversalSerialBus)USB設備的主要特點採用USB介面的設備支持熱拔插USB介面可以同時連接127臺USB設備。速度方面,USB1.1匯流排規範定義了12Mb/s的帶寬,而USB2.0可提供480Mb/s的傳輸速度。USB匯流排能夠提供500mA的電流。USB設備及其體系結構USB匯流排系統中的設備可以分為三個類型USB主機USB集線器(HUB)USB匯流排的設備,又稱USB功能外設。USB的傳輸方式針對設備堆系統資源需求的不同,在USB規範中規定了四種不同的數據傳輸方式控制(Control)傳輸方式中斷(Interrupt)傳輸方式同步(Isochronous)傳輸方式批(Bulk)傳輸方式控制傳輸方式該方式用來處理主機的USB設備的數據傳輸。包括設備控制指令、設備狀態查詢及確認命令。當USB設備收到這些數據和命令後,將依據先進先出的原則按佇列方式處理到達的數據。中斷傳輸方式該方式傳送的數據量很小,但這些數據需要及時處理,以達到即時效果,此方式主要用在鍵盤、滑鼠以及遊戲手柄等外部設備上。同步(等時)傳輸方式該方式用來連接需要連續傳輸,且對數據的正確性要求不高而對時間極為敏感的外部設備,如麥克風、音箱以及電話等。等時傳輸方式以固定的傳輸速率,連續不斷地在主機與USB設備之間傳輸數據,在傳送數據發生錯誤時,USB並不處理這些錯誤,而是繼續傳送新的數據。批傳輸方式該方式用來傳輸要求正確無誤的大批量數據。通常印表機、掃描器和數碼相機以這種方式與主機連接。這種類型的設備適合於傳輸非常慢和大量被延遲的傳輸,可以等到所有其他類型的數據的傳送完成之後再傳送和接收數據傳輸方式的選擇通常所有的傳送方式下的主動權都在PC邊,也就是host控制傳輸是USB傳輸中最重要的傳輸類型,只有正確執行完控制傳輸,才能進一步執行其他的傳輸類型。USB設備的電氣連接所有USB外設都有一個上行的連接,上行連接採用A型介面,而下行連接一般則採用B型介面。USB連接分為上行連接和下行連接。USB電纜中有四根導線USB介面類型A型USB插頭(plug)和A型USB插座(receptacle)編號定義顏色識別1VBUSRed(紅色)2D-White(白色)3D+Green(綠色)4GNDBlack(黑色)USB介面類型B型USB插頭(plug)和A型USB插座(receptacle)編號定義顏色識別1VBUSRed(紅色)2D-White(白色)3D+Green(綠色)4GNDBlack(黑色)miniUSB與microUSBUSB各版本比較USB版本

理論最大傳輸

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论