當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]摘要:在高性能嵌入式控制系統(tǒng)中,運行嵌入式Linux操作系統(tǒng)的主機ARM和DSP實現(xiàn)主從控制的設(shè)計方案具有顯著優(yōu)勢,并獲得廣泛運用。而實現(xiàn)ARM與DSP之間的可靠通信是其關(guān)鍵技術(shù)之一。本文以Samsung公司的ARM9芯片S3C244

摘要:在高性能嵌入式控制系統(tǒng)中,運行嵌入式Linux操作系統(tǒng)的主機ARMDSP實現(xiàn)主從控制的設(shè)計方案具有顯著優(yōu)勢,并獲得廣泛運用。而實現(xiàn)ARM與DSP之間的可靠通信是其關(guān)鍵技術(shù)之一。本文以Samsung公司的ARM9芯片S3C2440和TI公司的DSP芯片TMS320F28015為例,分析了I2C通信接口的原理及特點,提出了基于I2C總線的多機通信接口設(shè)計方法。測試結(jié)果驗證了該系統(tǒng)的可行性及可靠性,對嵌入式系統(tǒng)設(shè)計具有一定的借鑒價值。
關(guān)鍵詞:ARM9;DSP;I2C通信;Linux

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

1 多機系統(tǒng)組成
    該多機控制系統(tǒng)以ARM9微控制器S3C2440為核心,采用I2C總線掛載多個DSP芯片TMS320F28015作為協(xié)控制器,構(gòu)成整個控制系統(tǒng)的核心。
1.1 S3C2440及TMS320F28015簡介
    Samsung公司的處理器S3C2440是內(nèi)部集成了ARM公司ARM920T處理器內(nèi)核的32位微控制器,資源豐富,帶獨立的16 KB的指令Cache和16 KB數(shù)據(jù)Cache,最高主頻可達400 MHz。它擁有130個通用I/O、24個外部中斷源以及豐富的外部接口能實現(xiàn)各種功能,包括支持多主功能的I2C總線接口、3路URAT、2路SPI、攝像頭接口等。
    TMS320F28015(以下簡稱F28015)是TI公司的32位處理器,它具有強大的控制和信號處理能力,能夠?qū)崿F(xiàn)復雜的控制算法。片上整合了Fl ash存儲器、I2C總線模塊、快速的A/D轉(zhuǎn)換器、增強的CAN總線模塊、事件管理器、正交編碼電路接口及多通道緩沖串口等外設(shè),此種整合能夠方便地實現(xiàn)功能的擴展。同時,快速的中斷響應(yīng)使它能夠保護關(guān)鍵的寄存器并快速(更小的中斷延時)地響應(yīng)外部異步事件。
1.2 I2C總線接口
    I2C總線是一種用于IC器件之間連接的串行總線,采用SDA(數(shù)據(jù)線)和SCL(時鐘線)兩線連接每個帶有I2C總線接口的器件或模塊。串行的8位雙向數(shù)據(jù)傳輸率在標準模式下可達100 kb/s,快速模式下可達400 kb/s。多個微控制器可以通過I2C總線接口非常方便地連接在一起構(gòu)成系統(tǒng),并根據(jù)地址識別每個器件。這種總線結(jié)構(gòu)的連線和連接引腳少,器件間總線簡單,結(jié)構(gòu)緊湊。因此其構(gòu)成系統(tǒng)的成本較低,并且在總線上增加器件不會影響系統(tǒng)的正常工作,所有的I2C總線器件共用一套總線,因此其系統(tǒng)修改和可擴展性好。
    總線必須由主機(通常為微控制器)控制,主機產(chǎn)生串行時鐘(SCL)控制總線的數(shù)據(jù)傳輸,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。I2C總線起始和停止時序如圖1所示。


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


    S3C2440的PA55和PA56引腳分別塒應(yīng)I2C_SDA和I2C_CLK,而F28015的GPIO32和GPIO33也可以分別復用為I2C_SDA和I2C_CLK。考慮到阻抗不匹配等因素會影響總線數(shù)據(jù)傳輸效果,因此在將兩塊芯片的I2C_DATA和I2C_CLK引腳直連時,在直連線路上各串聯(lián)一個小電阻。
    I2C_SDA和I2C_CLK是雙向電路,必須都通過一個電流源或上拉電阻連接到正電源電壓上。由于S3C2440和F28015的輸出高電平均為3.3 V,所以在硬件設(shè)計時將I2C_SDA和I2C_CLK總線通過上拉電阻連接到了3.3V的VCC電源上。[!--empirenews.page--]

2 ARM和DSP通信軟件設(shè)計
    運行Linux操作系統(tǒng)的ARM微控制器作為主控制器,在數(shù)據(jù)管理及多任務(wù)調(diào)度等方面有顯著優(yōu)勢,可以很好地組織外圍器件采集的數(shù)據(jù);主要實現(xiàn)對系統(tǒng)的整體控制,并通過總線設(shè)備驅(qū)動程序控制I2C總線模塊,通過主機尋址實現(xiàn)向I2C總線上掛載的下層DSP的數(shù)據(jù)收發(fā)。為保證數(shù)據(jù)通信的實時性,F(xiàn)28015通過中斷響應(yīng)的方式實現(xiàn)數(shù)據(jù)接收和發(fā)送。
2.1 ARM9平臺的嵌入式Linux的I2C總線驅(qū)動設(shè)計
2.1.1 I2C總線讀寫時序
    ARM9微控制器作為主機向從機DSP寫數(shù)據(jù),首先向從機發(fā)送啟動信號,然后發(fā)送7位從機地址和1位寫標志位,再等待從機的應(yīng)答信號。在收到應(yīng)答信號后,主機發(fā)送數(shù)據(jù)給從機,再次等待應(yīng)答信號。當主機收到應(yīng)答信號之后再次發(fā)送數(shù)據(jù)。之后,主機等待從機的應(yīng)答信號,如此直到數(shù)據(jù)發(fā)送完成,主機發(fā)送停止信號。I2C總線寫數(shù)據(jù)幀格式如圖3所示。


    主模式下讀數(shù)據(jù),是指每次從指定的位置讀取一個或多個字節(jié)數(shù)據(jù)。主機首先向從機發(fā)送啟動信號,然后發(fā)送7位從機地址和1位讀標志位,等待從機應(yīng)答。當收到從機的應(yīng)答信號后,主機準備接收從機發(fā)送的數(shù)據(jù),接收完成后發(fā)送一個應(yīng)答信號,如此直到數(shù)據(jù)接收完成,主機發(fā)送一個停止信號。圖4為I2C總線讀數(shù)據(jù)幀格式。


2.1.2 Linux下I2C總線驅(qū)動程序概述
    Linux系統(tǒng)的I2C總線驅(qū)動采用體系化結(jié)構(gòu)設(shè)計,包括I2C總線適配器驅(qū)動和I2C總線設(shè)備驅(qū)動??偩€驅(qū)動實現(xiàn)對I2C總線適配器(S3C2440的I2C總線模塊)的控制,設(shè)備驅(qū)動實現(xiàn)對具體設(shè)備(F28015的I2C總線模塊)的讀寫控制。圖5為總體驅(qū)動框架,可以分為三個層次:


    ①I2C框架。內(nèi)核中i2c.h和i2c-core.c為I2C總線框架的主體,提供了核心數(shù)據(jù)結(jié)構(gòu)的定義、I2C總線適配器驅(qū)動和設(shè)備驅(qū)動的注冊、注銷管理、I2C總線通信方法上層的、與具體適配器無關(guān)的代碼、檢測設(shè)備地址的上層代碼等。i2c-dev.c用于創(chuàng)建I2C總線適配器的設(shè)備節(jié)點,提供I2C總線設(shè)備訪問方法等。
    ②I2C總線適配器驅(qū)動。定義描述具體I2C總線適配器的數(shù)據(jù)結(jié)構(gòu),實現(xiàn)在具體I2C總線適配器上的I2C總線通信方法。
    ③I2C總線設(shè)備驅(qū)動。定義描述具體設(shè)備的數(shù)據(jù)結(jié)構(gòu),借助I2C總線框架的相關(guān)函數(shù)實現(xiàn)設(shè)備的注冊,并為用戶提供上層應(yīng)用程序編程接口。
    Linux的I2C總線驅(qū)動框架中的主要數(shù)據(jù)結(jié)構(gòu)包括:i2c_driver、i2c_client、i2c_adapter和i2c_algorithm,它們被定義在內(nèi)核中的i2c.h頭文件中。i2c_adapter對應(yīng)于物理上的一個適配器,而i2c_algorithm對應(yīng)一套通信方法,用來為適配器提供通信函數(shù)。i2c_algori thm中的關(guān)鍵函數(shù)master_xfei()用于產(chǎn)生I2C總線訪問周期需要的信號,以i2c_msg(即I2C總線消息)為單位。該結(jié)構(gòu)體原型如下:
   
    i2c_driver對應(yīng)一套驅(qū)動方法,是用于輔助作用的數(shù)據(jù)結(jié)構(gòu)。i2c_client對應(yīng)于真實的物理設(shè)備,每個I2C總線設(shè)備都需要一個i2c_clie nt來描述。i2c_adapter和i2c_client的關(guān)系與I2C總線硬件體系中適配器和設(shè)備關(guān)系一致,即i2c_client依附于i2c_adapter。[!--empirenews.page--]
    在Linux內(nèi)核源代碼中drivers目錄下的i2c_dev.c文件,是通用的I2C總線設(shè)備驅(qū)動文件,為應(yīng)用程序提供open()、write()、read()、ioctl()和close()等操作接口來訪問設(shè)備。應(yīng)用層可以借用這些接口訪問掛接在適配器上的I2C總線設(shè)備的存儲空間或寄存器,并控制I2C總線設(shè)備的工作方式。
2.1.3 S3C2440的I2C總線驅(qū)動及設(shè)備驅(qū)動
    S3C2440內(nèi)部的I2C總線控制器通過4個寄存器實現(xiàn)對通信的控制,分別是I2C控制寄存器(I2CCON)、I2C狀態(tài)寄存器(I2CSTAT)、I2C收發(fā)數(shù)據(jù)移位寄存器(I2CDS)、I2C地址寄存器(I2CADD)。
    按照Linux中I2C總線框架要求,S3C2440的I2C總線驅(qū)動設(shè)計主要完成以下工作:設(shè)計i2c_adapter_s3c_init()模板加載函數(shù)和對應(yīng)于i2c_adapter_s3c_exit()模板卸載函數(shù);設(shè)計i2c_adapter_s3c_xfer()模板S3C2440適配器通信方法函數(shù)。
    i2c_adapter_s3c_init()通過注冊s3c2440_i2c_driver結(jié)構(gòu)體實現(xiàn)總線驅(qū)動的平臺注冊,s3c2440_i2c_driver結(jié)構(gòu)體包含了具體適配器的probe()函數(shù)、remove()函數(shù)、resume()函數(shù)指針等信息。代碼如下:
   
    完成了S3C2440的I2C總線適配器驅(qū)動注冊后,就可以將具體設(shè)備驅(qū)動注冊到該總線平臺上,實現(xiàn)I2C總線數(shù)據(jù)通信。i2c_dev.c文件是內(nèi)核源碼提供的通用I2C總線設(shè)備驅(qū)動文件,針對每個I2C總線適配器生成一個主設(shè)備號為89的設(shè)備文件,設(shè)備驅(qū)動模塊加載流程如圖6所示。完成加載后,驅(qū)動提供i2cdev_read()、i2cdev_write()、i2cdev_ioctl()函數(shù)來對應(yīng)用戶空間的read()、write()、ioctl()函數(shù),供用戶使用。用戶通過這些接口函數(shù)實現(xiàn)I2C總線數(shù)據(jù)的讀寫功能。


2.2 DSP數(shù)據(jù)接收中斷程序設(shè)計
    通過配置F28015的I2C模塊寄存器,設(shè)置I2C模塊為從工作方式,同時利用I2C總線中斷響應(yīng)程序?qū)崿F(xiàn)對總線上數(shù)據(jù)的接收和發(fā)送,進而完成數(shù)據(jù)通信。F28015產(chǎn)生了I2C總線中斷后,就執(zhí)行中斷服務(wù)程序,圖7為I2C總線中斷服務(wù)程序流程。

[!--empirenews.page--]
    中斷服務(wù)程序通過查詢狀態(tài)寄存器(I2CSTR)標志位,得出中斷類型碼,然后調(diào)用相應(yīng)的子程序,完成數(shù)據(jù)接收發(fā)送。代碼如下:
   
    F28015中的數(shù)據(jù)接收子程序和數(shù)據(jù)發(fā)送子程序是在I2C總線的中斷服務(wù)程序中根據(jù)不同的狀態(tài)碼進行調(diào)用,它們是整個通信程序的核心部分。數(shù)據(jù)接收子程序和數(shù)據(jù)發(fā)送子程序的流程如圖8所示。



3 測試結(jié)果
    通過NFS文件系統(tǒng)將編譯成模塊的I2C的總線驅(qū)動和設(shè)備驅(qū)動加載到運行Linux操作系統(tǒng)的S3C2440平臺上(先加載總線驅(qū)動),再將F28015的測試程序燒寫到RAM中。運行F28015等待I2C總線上的數(shù)據(jù),再執(zhí)行Linux系統(tǒng)中的I2C總線測試程序。測試結(jié)果顯示,芯片通過I2C總線接口完成了數(shù)據(jù)通信,具有良好的實時性和可靠性。

4 結(jié)論
    該設(shè)計利用I2C總線實現(xiàn)了ARM9微控制器與DSP芯片間實時可靠的數(shù)據(jù)通信。ARM9微榨制器結(jié)合Linux操作系統(tǒng)作為上層控制核心,DSP芯片實現(xiàn)下層控制算法,可充分發(fā)揮ARM9微控制器在數(shù)據(jù)采集和任務(wù)管理等方面的優(yōu)勢以及DSP芯片在算法實現(xiàn)和底層控制的長處。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉