2016年10月23日 星期日

DIY - Robot 機器人 - PIC24FJ64GA008 I2C 模組介紹(十二)

DIY - Robot 機器人 - PIC24FJ64GA008 I2C 模組介紹(十二): 

Microchip PIC24FJ64GA008 處理器內置兩個 I2C(I2C1和I2C2)的模組,I2C(I²C,Inter-Integrated Circuit)模組是一種串列通訊匯流排,由飛利浦公司在 1980年代為了讓主機板、嵌入式系統或其他設備以連接低速週邊裝置而發展的串列通訊介面。I2C 只需要使用兩條雙向漏極開路(Open Drain)SDA(串列資料)及 SDL(串列時脈SCL),並利用電阻將電位上拉。

Microchip PIC24FJ64GA008 處理器的 I2C 匯流排
I2C 允許相當大的工作電壓範圍,典型的電壓準位為 +3.3V 或 +5V。I2C 匯流排依傳輸速率的不同,而有不同的模式:低速模式(10 Kbit/s)、標準模式(100 Kbit/s)、快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。匯流排最多可和 112 個節點通訊。節點的最大數量受限於位址空間以及 400pF 的總的匯流排電容,400pF 總電容也限制了實際通訊距離只有幾米。

Microchip PIC24FJ64GA008 處理器的 I2C 匯流排傳輸速率
I2C 模組的主要特性如下:
• 主器件和從器件邏輯相互獨立
• 支援多主機系統,可以防止在仲裁時丟失報文
• 在從模式下可檢測 7 位和 10 位器件位址,並可配置位址遮罩• 檢測 I2C 協議中定義的廣播呼叫地址
• 具有匯流排轉發器模式(Bus Repeater Mode),允許模組作為從器件接收所有報文,而不論地址如何
• 具有自動 SCLx 時鐘延長功能,為處理器提供延時以回應從器件的資料請求• 支援 100kHz 和 400kHz 匯流排規範
• 支援智慧外設管理介面(Intelligent Peripheral Management Interface, IPMI)標準

I2C 匯流排的時序(Timing Diagram)
主機在單主機環境中通信過程如下: 
1. 在 SDAx 和 SCLx 上發起一個啟動條件。 
2. 發送一個 I2C 器件位址位元組到從器件,表明將要進行寫(Write Operation)操作。 
3. 等待並驗證來自從器件的應答。 
4. 將第一個資料位元組(有時是命令)發送到從器件。 
5. 等待並驗證來自從器件的應答。 
6. 將串列記憶體位址的低位元組發送到從器件。 
7. 重複步驟 4 和步驟 5 直到資料位元組發送完畢。
8. 在 SDAx 和 SCLx 上發起一個重複啟動條件。 
9. 將器件位址位元組發送給從器件,表明將要進行讀(Read Operation)操作。 
10. 等待並驗證來自從器件的應答。 
11. 使能主控接收模式來接收串列記憶體資料。 
12. 在資料位元組接收完畢時產生 ACK 或 NACK 條件。 
13. 在 SDAx 和 SCLx 上產生停止條件。

主機在 I2C 匯流排的傳送資料 (Write Operation) 

主機在 I2C 匯流排的接收資料 (Read Operation)
I2C 匯流排完整的資料交換時序
2016年 10月 23日 天氣報告
氣溫:27.3度 @ 19:30
相對濕度:百分之 88%
天氣:多雲

沒有留言:

張貼留言