www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]本文以ST9+單片機(jī)為例闡述I2C總線協(xié)議,并給出在ST9+單片機(jī)上實(shí)現(xiàn)I2C總線驅(qū)動(dòng)程序的流程和方法。

<STRONG>摘要:串行擴(kuò)展總線技術(shù)是新一代單片機(jī)技術(shù)發(fā)展的一個(gè)顯著特點(diǎn),其中Philips公司推出的I2C總線最為著名。ST9+系列是意法半導(dǎo)體公司的單片機(jī)產(chǎn)品,能夠很好地支持I2C總線協(xié)議。本文以ST9+單片機(jī)為例闡述I2C總線協(xié)議,并給出在ST9+單片機(jī)上實(shí)現(xiàn)I2C總線驅(qū)動(dòng)程序的流程和方法。
關(guān)鍵詞:I2C總線 串行擴(kuò)展總線 ST9+ 總線驅(qū)動(dòng)

串行擴(kuò)展總線技術(shù)是新一代單片機(jī)技術(shù)發(fā)展的一個(gè)顯著特點(diǎn),其中Philips公司推出的 I2C總線最為著名。I2C總線最顯著的特點(diǎn)是規(guī)范的完整性、結(jié)構(gòu)的獨(dú)立性和用戶使用時(shí)的簡單化。 I2C總線有嚴(yán)格的規(guī)范,如接口的電氣特性、信號時(shí)序、信號傳輸?shù)亩x、總線狀態(tài)設(shè)置、總線管理規(guī)則及總線狀態(tài)處理等。與并行擴(kuò)展總線相比,串行擴(kuò)展總線有突出的優(yōu)點(diǎn):電路結(jié)構(gòu)簡單,程序編寫方便,易于實(shí)現(xiàn)用戶系統(tǒng)軟硬件的模塊化、標(biāo)準(zhǔn)化等。

  目前I2C總線技術(shù)已為許多著名公司所采用,并廣泛應(yīng)用于視頻、音頻系統(tǒng)中。推廣I2C總線技術(shù)將有助于提高我國單片機(jī)應(yīng)用開發(fā)水平。意法半導(dǎo)體公司(SGS-THOMSON)是全球十大半導(dǎo)體制造商之一,其領(lǐng)先單片機(jī)產(chǎn)品ST9+系列是目前功能比較全面且支持通信協(xié)議較多的一款產(chǎn)品,支持包括I2C、USB在內(nèi)的多種通信協(xié)議。本文以ST9+系列單片機(jī)中的ST92163為例,闡述其對I2C總線的支持方式,并給出在ST92163單片機(jī)上實(shí)現(xiàn)I2C總線協(xié)議的程序流程和方法。

1 ST9+系列單片機(jī)結(jié)構(gòu)及其對I2C總線的支持

1.1 ST9+系列單片機(jī)的結(jié)構(gòu)和特點(diǎn)

  ST92163單片機(jī)是ST9+系列單片機(jī)中的典型產(chǎn)品,如圖1所示。本文以該款單片機(jī)為例介紹ST9+系列產(chǎn)品。該產(chǎn)品為8位/16位兼容單片機(jī),片內(nèi)含20 KB的ROM和2 KB的RAM,主頻24 MHz,擁有256個(gè)寄存器,最大內(nèi)存尋址4 MB,支持I2C、SPI以及USB在內(nèi)的多種串行通信協(xié)議,在視頻、音頻等方面具有廣泛的應(yīng)用。其256個(gè)寄存器分為224個(gè)通用寄存器、16個(gè)系統(tǒng)寄存器和16個(gè)頁寄存器。其中16個(gè)頁寄存器對應(yīng)64頁,可通過改變當(dāng)前頁來切換不同功能的16個(gè)頁寄存器。

1.2 ST9+系列單片機(jī)對I2C總線的支持

  ST9+支持2種模式的I2C總線,包括100 kHz的標(biāo)準(zhǔn)I2C模式和400 kHz的快速I2C模式。同時(shí)ST9+系列單片機(jī)也支持7位和10位2種長度的地址碼,并采用DMA的方式使對單片機(jī)處理時(shí)間的占用降到最小。除此之外,ST9+為支持I2C總線協(xié)議還具備以下特征:內(nèi)部并行總線與I2C串行總線的轉(zhuǎn)換、總線上多主器件的支持和接收或者發(fā)送標(biāo)志產(chǎn)生、發(fā)送或接收數(shù)據(jù)完畢標(biāo)志產(chǎn)生、發(fā)送過程中錯(cuò)誤檢測以及支持錯(cuò)誤發(fā)生后產(chǎn)生中斷等。

  針對主器件模式,ST9+系列單片機(jī)還增加了總線時(shí)鐘產(chǎn)生、總線忙標(biāo)志產(chǎn)生、開始位標(biāo)志檢測、總線仲裁丟失標(biāo)志產(chǎn)生以及開始和結(jié)束標(biāo)志產(chǎn)生等特征。而針對從設(shè)備,ST9+也有相關(guān)特征支持,包括有停止位標(biāo)志檢測、設(shè)備地址編程、發(fā)送錯(cuò)誤檢測、數(shù)據(jù)發(fā)送或接收完畢標(biāo)志產(chǎn)生和開始或結(jié)束錯(cuò)位檢測等特征。

  ST9+系列單片機(jī)中實(shí)現(xiàn)I2C總線協(xié)議的寄存器共有16個(gè),如圖2所示。其中初始化寄存器6個(gè),包括I2C自地址寄存器I2COAR1和I2COAR2、地址調(diào)用寄存器I2CADR、時(shí)鐘控制寄存器I2CCCR和I2CECCR以及控制寄存器I2CCR;數(shù)據(jù)發(fā)送和接收寄存器4個(gè),包括數(shù)據(jù)寄存器I2CDR、控制寄存器I2CCR、狀態(tài)寄存器I2CSR1和I2CSR2;I2C相

 

 

關(guān)中斷和DMA寄存器7個(gè),包括中斷狀態(tài)寄存器I2CISR、中斷掩碼寄存器I2CIMR、中斷向量寄存器I2CIVR、接收DMA地址指針寄存器I2CRDAP、接收DMA事務(wù)計(jì)數(shù)寄存器I2CRDC、發(fā)送DMA地址指針寄存器I2CTDAP以及發(fā)送DMA事務(wù)計(jì)數(shù)寄存器I2CTDA。這16個(gè)寄存器均為頁寄存器,并放在同一頁中。

  以上寄存器中,數(shù)據(jù)寄存器I2CDR、控制寄存器I2CCR、狀態(tài)寄存器I2CSR1和I2CSR2是最基本的4個(gè)寄存器,通過這4個(gè)寄存器的設(shè)置可以實(shí)現(xiàn)基本的發(fā)送和接收數(shù)據(jù)的功能。這4個(gè)寄存器的具體情況如圖3、4、5所示。

  PE為外設(shè)使能位,ENGC為從設(shè)備模式使能位,START為開始標(biāo)志使能位,ACK為響應(yīng)使能位,STOP為結(jié)束標(biāo)志使能位,ITE為中斷使能位。

  EVF為事件標(biāo)志位,ADD10為10位長度地址位,TRA為區(qū)別發(fā)送或接收狀態(tài)位,BUSY為總線忙標(biāo)志位,BTF為數(shù)據(jù)傳輸結(jié)束標(biāo)志位,ADSL為從設(shè)備地址匹配標(biāo)志位,M/SL為區(qū)別主從設(shè)備位,SB為開始標(biāo)志位。

ADDTX為地址應(yīng)答標(biāo)志位,AF為應(yīng)答失敗標(biāo)志位,STOPF為從設(shè)備檢測到停止標(biāo)志位,ARLO為總線仲裁丟失標(biāo)志位,BERR為總線忙錯(cuò)誤標(biāo)志位,GCAL為普通地址調(diào)用匹配標(biāo)志位。

    I2C數(shù)據(jù)寄存器I2CDR為存放待發(fā)數(shù)據(jù)或接收到數(shù)據(jù)的緩沖區(qū),在下一個(gè)要發(fā)送或者接收的字節(jié)數(shù)據(jù)到來之前必須清空。

2 程序?qū)崿F(xiàn)

2.1 編譯工具

  

 

     ST9+系列單片機(jī)I2C總線協(xié)議驅(qū)動(dòng)程序采用ANSI C語言編寫,使用GNU組織的GCC編譯器編譯、鏈接生成所需要的十六進(jìn)制文件。

  GCC編譯器是自由軟件組織發(fā)布的多平臺(tái)支持的C語言編譯器,ST9+系列單片機(jī)編程使用的GCC9版本,包括了用于C語言編譯的CC9、用于匯編語言編譯的GAS9、用于鏈接的LD9和宏匯編解釋器TR9等模塊。圖 6 為GCC9編譯、鏈接流程圖。

2.2 程序設(shè)計(jì)及流程

  為了實(shí)現(xiàn)簡單的數(shù)據(jù)發(fā)送和接收功能,定義以下幾個(gè)函數(shù):對I2C主要寄存器初始化的I2C_INIT函數(shù)、發(fā)送數(shù)據(jù)的I2C_TX函數(shù)、接收數(shù)據(jù)的I2C_RX函數(shù)、發(fā)送從設(shè)備地址的I2C_SEND_DEVICEID函數(shù)以及開始標(biāo)志I2C_START函數(shù)和結(jié)束標(biāo)志I2C_STOP函數(shù)。

  I2C_INIT函數(shù)中主要完成I2C控制寄存器I2CCR的設(shè)置。I2C數(shù)據(jù)寄存器I2CDR的清空以及I2C時(shí)鐘寄存器I2CCCR的I2C工作頻率設(shè)置等工作,以選擇所需要的I2C工作模式。I2C_START函數(shù)中主要完成對I2C控制寄存器I2CCR的START位的置位,并等待I2C狀態(tài)寄存器I2CSR1的START標(biāo)志位被系統(tǒng)置位。I2C_STOP函數(shù)中主要完成對I2C控制寄存器I2CCR的STOP位的置位,以允許當(dāng)數(shù)據(jù)發(fā)送完畢后系統(tǒng)對I2C狀態(tài)寄存器I2CSR1的STOP標(biāo)志位置位。I2C_TX函數(shù)則是把需要發(fā)送的數(shù)據(jù)放入I2C數(shù)據(jù)寄存器I2CDR中發(fā)送,并在系統(tǒng)對I2C狀態(tài)寄存器I2CSR1的BTF標(biāo)志位置位后退出此函數(shù)。同理,I2C_RX函數(shù)則從I2C數(shù)據(jù)寄存器I2CDR中取出通過I2C總線接收到的數(shù)據(jù),在系統(tǒng)對I2C狀態(tài)寄存器I2CSR1的BTF標(biāo)志位置位后退出此函數(shù)。

 

 

     I2C_SEND_DEVICEID函數(shù)目的在于發(fā)送從設(shè)備地址,并決定是接收數(shù)據(jù)還是發(fā)送數(shù)據(jù)。

    圖7為I2C發(fā)送、接收程序流程圖。

3 結(jié) 論

  ST9+系列單片機(jī)能夠很好地支持I2C總線協(xié)議,可以實(shí)現(xiàn)I2C總線協(xié)議規(guī)定的全部功能和要求,并且在其上實(shí)現(xiàn)I2C總線協(xié)議驅(qū)動(dòng)程序簡單、直觀和高效。在使用了大量I2C器件的單片機(jī)系統(tǒng)中,可以選用意法半導(dǎo)體公司的ST9+系列單片機(jī)作為其核心器件。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉