大肉大捧一进一出好爽视色大师,丰满少妇被猛烈进入在线播放,欧美真人性野外做爰,黑人巨大vs日本人优在线

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
ST9+系列單片機I2C總線驅動程序實現
ST9+系列單片機I2C總線驅動程序實現
 更新時間:2009-9-11 15:44:43  點擊數:0
【字體: 字體顏色
 

摘要:串行擴展總線技術是新一代單片機技術發展的一個顯著特點,其中Philips公司推出的I2C總線最為著名。ST9+系列是意法半導體公司的單片機產品,能夠很好地支持I2C總線協議。本文以ST9+單片機為例闡述I2C總線協議,并給出在ST9+單片機上實現I2C總線驅動程序的流程和方法。
關鍵詞:I2C總線 串行擴展總線 ST9+ 總線驅動

串行擴展總線技術是新一代單片機技術發展的一個顯著特點,其中Philips公司推出的 I2C總線最為著名。I2C總線最顯著的特點是規范的完整性、結構的獨立性和用戶使用時的簡單化。 I2C總線有嚴格的規范,如接口的電氣特性、信號時序、信號傳輸的定義、總線狀態設置、總線管理規則及總線狀態處理等。與并行擴展總線相比,串行擴展總線有突出的優點:電路結構簡單,程序編寫方便,易于實現用戶系統軟硬件的模塊化、標準化等。

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

1 ST9+系列單片機結構及其對I2C總線的支持

1.1 ST9+系列單片機的結構和特點

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

1.2 ST9+系列單片機對I2C總線的支持

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

  針對主器件模式,ST9+系列單片機還增加了總線時鐘產生、總線忙標志產生、開始位標志檢測、總線仲裁丟失標志產生以及開始和結束標志產生等特征。而針對從設備,ST9+也有相關特征支持,包括有停止位標志檢測、設備地址編程、發送錯誤檢測、數據發送或接收完畢標志產生和開始或結束錯位檢測等特征。

  ST9+系列單片機中實現I2C總線協議的寄存器共有16個,如圖2所示。其中初始化寄存器6個,包括I2C自地址寄存器I2COAR1和I2COAR2、地址調用寄存器I2CADR、時鐘控制寄存器I2CCCR和I2CECCR以及控制寄存器I2CCR;數據發送和接收寄存器4個,包括數據寄存器I2CDR、控制寄存器I2CCR、狀態寄存器I2CSR1和I2CSR2;I2C相

 

 

關中斷和DMA寄存器7個,包括中斷狀態寄存器I2CISR、中斷掩碼寄存器I2CIMR、中斷向量寄存器I2CIVR、接收DMA地址指針寄存器I2CRDAP、接收DMA事務計數寄存器I2CRDC、發送DMA地址指針寄存器I2CTDAP以及發送DMA事務計數寄存器I2CTDA。這16個寄存器均為頁寄存器,并放在同一頁中。

  以上寄存器中,數據寄存器I2CDR、控制寄存器I2CCR、狀態寄存器I2CSR1和I2CSR2是最基本的4個寄存器,通過這4個寄存器的設置可以實現基本的發送和接收數據的功能。這4個寄存器的具體情況如圖3、4、5所示。

  PE為外設使能位,ENGC為從設備模式使能位,START為開始標志使能位,ACK為響應使能位,STOP為結束標志使能位,ITE為中斷使能位。

  EVF為事件標志位,ADD10為10位長度地址位,TRA為區別發送或接收狀態位,BUSY為總線忙標志位,BTF為數據傳輸結束標志位,ADSL為從設備地址匹配標志位,M/SL為區別主從設備位,SB為開始標志位。

ADDTX為地址應答標志位,AF為應答失敗標志位,STOPF為從設備檢測到停止標志位,ARLO為總線仲裁丟失標志位,BERR為總線忙錯誤標志位,GCAL為普通地址調用匹配標志位。

    I2C數據寄存器I2CDR為存放待發數據或接收到數據的緩沖區,在下一個要發送或者接收的字節數據到來之前必須清空。

2 程序實現

2.1 編譯工具

  

 

     ST9+系列單片機I2C總線協議驅動程序采用ANSI C語言編寫,使用GNU組織的GCC編譯器編譯、鏈接生成所需要的十六進制文件。

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

2.2 程序設計及流程

  為了實現簡單的數據發送和接收功能,定義以下幾個函數:對I2C主要寄存器初始化的I2C_INIT函數、發送數據的I2C_TX函數、接收數據的I2C_RX函數、發送從設備地址的I2C_SEND_DEVICEID函數以及開始標志I2C_START函數和結束標志I2C_STOP函數。

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

 

 

     I2C_SEND_DEVICEID函數目的在于發送從設備地址,并決定是接收數據還是發送數據。

    圖7為I2C發送、接收程序流程圖。

3 結 論

  ST9+系列單片機能夠很好地支持I2C總線協議,可以實現I2C總線協議規定的全部功能和要求,并且在其上實現I2C總線協議驅動程序簡單、直觀和高效。在使用了大量I2C器件的單片機系統中,可以選用意法半導體公司的ST9+系列單片機作為其核心器件。

  • 上一篇: ST9+系列單片機I2C總線驅動程序實現
  • 下一篇: 沒有了
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 隆德县| 宁国市| 连平县| 康乐县| 白水县| 台东市| 勐海县| 五指山市| 巴马| 汕头市| 土默特右旗| 辉县市| 黄梅县| 专栏| 山东| 海兴县| 宝鸡市| 且末县| 连平县| 柘城县| 苍山县| 民丰县| 房产| 城固县| 来宾市| 丽江市| 临湘市| 贵定县| 唐海县| 丰顺县| 麻阳| 宜兴市| 曲松县| 商洛市| 大同市| 城市| 上林县| 梅河口市| 衡山县| 永寿县| 绥中县|