<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM/DSP多機I2C通信方案

ARM/DSP多機I2C通信方案

作者: 時(shí)間:2012-04-06 來(lái)源:網(wǎng)絡(luò ) 收藏

引言

本文引用地址:http://dyxdggzs.com/article/149279.htm

在很多嵌入式控制系統中,系統既要完成大量的信息采集和復雜的算法,又要實(shí)現精確的控制功能。采用運行有嵌入式Linux操作系統的ARM9微控制器完成信號采集及實(shí)現上層控制算法,并向DSP芯片發(fā)送上層算法得到控制參數,DSP芯片根據獲得的參數和下層控制算法實(shí)現精確、可靠的閉環(huán)控制。

本文以Samsung公司的ARM9芯片S3C2440和TI公司的DSP芯片TMS320F28015為例,分析了接口的原理及特點(diǎn),提出了基于總線(xiàn)的接口設計方法。測試結果驗證了該系統的可行性及可靠性,對嵌入式系統設計具有一定的借鑒價(jià)值。

1 系統組成

控制系統以ARM9微控制器s3c2440為核心,采用總線(xiàn)掛載多個(gè)DSP芯片TMS320F28015作為協(xié)控制器,構成整個(gè)控制系統的核心。

1.1 S3C2440及TMS320F28015簡(jiǎn)介

Samsung公司的處理器S3C2440是內部集成了ARM公司ARM920T處理器內核的32位微控制器,資源豐富,帶獨立的16 KB的指令Cache和16 KB數據Cache,最高主頻可達400 MHz.它擁有130個(gè)通用I/O、24個(gè)外部中斷源以及豐富的外部接口能實(shí)現各種功能,包括支持多主功能的I2C總線(xiàn)接口、3路URAT、2路SPI、攝像頭接口等。

TMS320F28015(以下簡(jiǎn)稱(chēng)F28015)是TI公司的32位處理器,它具有強大的控制和信號處理能力,能夠實(shí)現復雜的控制算法。片上整合了Flash存儲器、I2C總線(xiàn)模塊、快速的A/D轉換器、增強的CAN總線(xiàn)模塊、事件管理器、正交編碼電路接口及多通道緩沖串口等外設,此種整合能夠方便地實(shí)現功能的擴展。同時(shí),快速的中斷響應使它能夠保護關(guān)鍵的寄存器并快速(更小的中斷延時(shí))地響應外部異步事件。

1.2 I2C總線(xiàn)接口

I2C總線(xiàn)是一種用于IC器件之間連接的串行總線(xiàn),采用SDA(數據線(xiàn))和SCL(時(shí)鐘線(xiàn))兩線(xiàn)連接每個(gè)帶有I2C總線(xiàn)接口的器件或模塊。串行的8位雙向數據傳輸率在標準模式下可達100 kb/s,快速模式下可達400 kb/s.多個(gè)微控制器可以通過(guò)I2C總線(xiàn)接口非常方便地連接在一起構成系統,并根據地址識別每個(gè)器件。這種總線(xiàn)結構的連線(xiàn)和連接引腳少,器件間總線(xiàn)簡(jiǎn)單,結構緊湊。因此其構成系統的成本較低,并且在總線(xiàn)上增加器件不會(huì )影響系統的正常工作,所有的I2C總線(xiàn)器件共用一套總線(xiàn),因此其系統修改和可擴展性好。

總線(xiàn)必須由主機(通常為微控制器)控制,主機產(chǎn)生串行時(shí)鐘( SCL) 控制總線(xiàn)的數據傳輸,并產(chǎn)生起始和停止條件。SDA 線(xiàn)上的數據狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA 狀態(tài)的改變被用來(lái)表示起始和停止條件。I2C總線(xiàn)起始和停止時(shí)序如圖1所示。

搜狗瀏覽器截圖(1).jpg

圖1 I2C總線(xiàn)起始和停止時(shí)序

1.3 硬件電路

S3C2440和F28015自身均集成了I2C總線(xiàn)模塊,支持多主設備I2C總線(xiàn)串行接口,可以方便地掛接到I2C總線(xiàn)上。因此,兩者之間的I2C總線(xiàn)接口電路的設計變得十分簡(jiǎn)單,只要將兩者的對應引腳I2C_CLK(對應I2C總線(xiàn)中的SCL線(xiàn))和I2C_SDA(對應I2C總線(xiàn)中的DATA線(xiàn))連接起來(lái)即可。S3C2440和TMS320F28015的硬件接口電路如圖2所示。

搜狗瀏覽器截圖(2).jpg

圖2 S3C2440和TMS320F28015的硬件接口

電路S3C2440的PA55和PA56引腳分別對應I2C_SDA和I2C_CLK,而F28015的GPIO32和GPIO33也可以分別復用為I2C_SDA和I2C_CLK.考慮到阻抗不匹配等因素會(huì )影響總線(xiàn)數據傳輸效果,因此在將兩塊芯片的I2C_DATA和I2C_CLK引腳直連時(shí),在直連線(xiàn)路上各串聯(lián)一個(gè)小電阻。

I2C_SDA和I2C_CLK是雙向電路,必須都通過(guò)一個(gè)電流源或上拉電阻連接到正電源電壓上。由于S3C2440和F28015的輸出高電平均為3.3 V,所以在硬件設計時(shí)將I2C_SDA和I2C_CLK總線(xiàn)通過(guò)上拉電阻連接到了3.3 V的VCC電源上。

2 ARM和DSP軟件設計

運行Linux操作系統的ARM微控制器作為主控制器,在數據管理及多任務(wù)調度等方面有顯著(zhù)優(yōu)勢,可以很好地組織外圍器件采集的數據;主要實(shí)現對系統的整體控制,并通過(guò)總線(xiàn)設備驅動(dòng)程序控制I2C總線(xiàn)模塊,通過(guò)主機尋址實(shí)現向I2C總線(xiàn)上掛載的下層DSP的數據收發(fā)。為保證數據通信的實(shí)時(shí)性,F28015通過(guò)中斷響應的方式實(shí)現數據接收和發(fā)送。

2.1 ARM9平臺的嵌入式Linux的I2C總線(xiàn)驅動(dòng)設計

2.1.1 I2C總線(xiàn)讀寫(xiě)時(shí)序

ARM9微控制器作為主機向從機DSP寫(xiě)數據,首先向從機發(fā)送啟動(dòng)信號,然后發(fā)送7位從機地址和1位寫(xiě)標志位,再等待從機的應答信號。在收到應答信號后,主機發(fā)送數據給從機,再次等待應答信號。當主機收到應答信號之后再次發(fā)送數據。之后,主機等待從機的應答信號,如此直到數據發(fā)送完成,主機發(fā)送停止信號。I2C總線(xiàn)寫(xiě)數據幀格式如圖3所示。



關(guān)鍵詞: 方案 通信 I2C 多機 ARM/DSP

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>