1. 程式人生 > 實用技巧 >片內外設、片上外設和片外外設的區別

片內外設、片上外設和片外外設的區別

片內外設就是片上外設,同一種意思不同說法而已。

片內外設和片外外設的區別:

片內、外設是兩個概念,片內指做成晶片的積體電路內部,簡稱片內,片外同理顯而易見;外設是外部裝置的簡稱,是指積體電路晶片外部的裝置。積體電路晶片與外部裝置的連線一般需要專門的介面電路和匯流排的連線(包括控制匯流排路、地址匯流排和資料匯流排等)。 由於大規模積體電路的技術發展得很快,現在許多晶片在製造時已經能夠將部分介面電路和匯流排整合到晶片內部。對於這部分電路與傳統的介面電路和匯流排是有區別的,為了加於區別可以稱之為片內外設,其含義是在積體電路晶片內部整合的用於與外部裝置連線的獨立於核心的控制器、介面電路和匯流排等。

早起由於IC整合工藝不發達,很多東西都是外設的,比如PWM、ADC、CAN等DSP晶片,原本都是需要晶片外接的,即使是現在,仍然有獨立的ADC晶片,比如ADS8364等等。但是現在,PWM、ADC等等東西都已經整合在DSP晶片內,當然,無論如何,晶片總還是會需要外接一些裝置實現某種系統,為了與那些外設相區別,就將整合在晶片內,但是又不屬於晶片本身(比如DSP,是一種微處理器,因此晶片中不屬於微處理器的部分都是外設)的稱為“片上外設”。

舉個例子,我們知道STM32微控制器是ST公司基於Contex-Mx開發生產的晶片,而ST公司用ARM核心設計晶片的過程中新增的獨立於核心的東西(比如串列埠模組、Flash、IIC模組、SPI通訊模組、ADC、DAC模組等等)對於核心來說就是“外設”,由於是整合在晶片內部的,所以叫片上外設。我們拿到ST公司設計生產的STM32晶片,開發各種應用系統,在我們自己開發的系統上獨立於STM32晶片的外部裝置(比如顯示屏、SD卡等)都是片外外設。

看下圖,黑色部分是ARM公司設計的核心,紅色部分是ST公司基於ARM公司設計的晶片新增的部分,稱為片上外設,綠色部分是開發者設計應用系統新增的部分,稱為片外外設。