當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]DSP虛擬I2C總線軟件包設(shè)計(jì)及應(yīng)用實(shí)例

數(shù)字信號(hào)處理器(DSP)在各領(lǐng)域中的應(yīng)用已日趨廣泛,其中TI(TEXAS INSTRUMENT)公司的TMS320系列芯片占據(jù)了主導(dǎo)地位。TMS320F206(簡(jiǎn)稱(chēng)F206)由于具有片內(nèi)32K字的Flash,支持JTAG掃描端口的仿真調(diào)試,并支持程序的串行下載,便于開(kāi)發(fā)設(shè)計(jì)及產(chǎn)品的軟件升級(jí),因而在中高檔儀器開(kāi)發(fā)中受到青睞。

  DSP的處理速度雖然較高,但直接支持的I/O口線較少,控制能力相對(duì)較弱,因而與外部器件接口采用串行方式較為適合。常用的串行接口和串行總線有UART、I2C總線,由于I2C總線提供了較完善的總線協(xié)議,且接口電路簡(jiǎn)單,因而得到廣泛的應(yīng)用。目前,已有很多外圍器件支持I2C接口,但多數(shù)MCU并不直接支持I2C總線,因而采用I/O口線模擬I2C的方式成為一種通用解決方案。但由于I2C總線協(xié)議的復(fù)雜性及操作管理的特殊性,仍給此類(lèi)方式的開(kāi)發(fā)造成了較大不便。好在文獻(xiàn)中提出了一種按平臺(tái)模式設(shè)計(jì)的、適用于80C51的虛擬I2C總線軟件包,大大簡(jiǎn)化了80C51的I2C接口程序設(shè)計(jì),使用戶無(wú)需了解I2C總線協(xié)議的細(xì)節(jié),即可實(shí)現(xiàn)相應(yīng)的接口。文獻(xiàn)中也給出了一種用于MSP430單片機(jī)的軟件包。由于DSP尚無(wú)此類(lèi)軟件包,為簡(jiǎn)化DSP的此類(lèi)I2C接口程序設(shè)計(jì),本文參照文獻(xiàn)中的設(shè)計(jì)原則,設(shè)計(jì)了一種適用于TMS320C2XX系列DSP開(kāi)發(fā)的軟件包。

  1 虛擬I2C軟件包的設(shè)計(jì)

  根據(jù)文獻(xiàn)中所提到的最佳包容性設(shè)計(jì)、后歸一化設(shè)計(jì)、前歸一化設(shè)計(jì)原則,軟件包進(jìn)行了如下定義。

  (1)適用范圍

 ?、?適用主發(fā)送和主接收方式。I2C總線有4種工作方式:主發(fā)送、主接收、從發(fā)送、從接收。因?qū)嶋HDSP多工作于I2C總線的主方式,因而軟件包設(shè)計(jì)為主方式。

 ?、?適用TMS320C2XX系列與I2C總線外圍器件的接口,支持對(duì)外圍器件N字節(jié)的讀寫(xiě),通信方式為對(duì)虛擬節(jié)點(diǎn)尋址后點(diǎn)對(duì)點(diǎn)的讀寫(xiě)。

 ?、?模擬I/O口線可選擇4根通用I/O口線(I/O0~ I/O4)中的任意兩根。

  (2)軟件包結(jié)構(gòu)設(shè)計(jì)

  TMS320C2XX系列產(chǎn)品,基本包括4根通用I/O口線I/O0~I/O4(由于XF僅能作為輸入口線,BIO僅能作為輸出口線,因而暫不考慮)。它們的輸入輸出方向由ASPCR的低4位來(lái)設(shè)定,相應(yīng)口線狀態(tài)的設(shè)定或讀取由IOSR寄存器控制。但此處DSP與80C51有所不同,口線的輸入輸出狀態(tài)不是自動(dòng)切換的,且ASPCR、IOSR寄存器都不支持位尋址方式,因而在進(jìn)行I2C總線工作方式模擬時(shí)較為繁瑣。為避免所用寄存器其它狀態(tài)位的改變,需通過(guò)較多的與、或操作來(lái)改變指定I/O口線的狀態(tài),因而本軟件包與80C51的虛擬I2C軟件包結(jié)構(gòu)稍有不同。當(dāng)然,這些均在軟件包內(nèi)部完成,使用者不必了解具體細(xì)節(jié),用戶接口同樣簡(jiǎn)單易用。

  ① 軟件包組成。為模擬I2C總線的操作時(shí)序,軟件包中包括了2個(gè)宏定義和12個(gè)子函數(shù)。

  (a)時(shí)序模擬子程序

  Sendb--發(fā)送起始標(biāo)志,啟動(dòng)I2C總線;senda--發(fā)送確認(rèn)標(biāo)志;

  Sendna--發(fā)送非確認(rèn)標(biāo)志;Sende--發(fā)送結(jié)束標(biāo)志。

  (b)操作模擬子程序

  geta--接收確認(rèn)標(biāo)志;sendd--發(fā)送8位數(shù)據(jù);

  getd--接收1個(gè)字節(jié)數(shù)據(jù)。

  (c)數(shù)據(jù)讀寫(xiě)子程序

  wrnbyte--寫(xiě)入N字節(jié);rdnbyte--讀取N字節(jié)。

  (d)其它宏及子函數(shù)

  subsendd--根據(jù)標(biāo)志位C設(shè)置模擬數(shù)據(jù)口線的狀態(tài);toggleclk--切換模擬時(shí)鐘口線狀態(tài);

  Xdelay--延時(shí)子程序;Sdainm--將模擬數(shù)據(jù)口線A配置為輸入口線;

  sdaoutm--將模擬數(shù)據(jù)口線配置為輸出。

  因DSP的工作頻率一般遠(yuǎn)高于I2C總線的操作頻率,因而這里需專(zhuān)用的延時(shí)子程序降低模擬時(shí)鐘口線頻率。本文所給出的源程序?yàn)镕206采用40 MHz晶振時(shí)的情況,用戶使用時(shí)可隨實(shí)際情況調(diào)整延時(shí)時(shí)間。

 ?、?軟件包符號(hào)定義。軟件包中包括如下符號(hào)定義:

  VSDA、VSCL--分別定義了模擬數(shù)據(jù)口線和模擬時(shí)鐘口線對(duì)應(yīng)的屏蔽位,因DSP中對(duì)通用I/O口線的操作不能通過(guò)位操作來(lái)實(shí)現(xiàn),因而僅能屏蔽位來(lái)定義,如采用IO3模擬數(shù)據(jù)線、IO2模擬時(shí)鐘線,則可定義IO3為08h、IO2為04h;

  RAM0--為數(shù)據(jù)暫存用的臨時(shí)存儲(chǔ)單元;

  RIO--為用于保存I/O口線當(dāng)前狀態(tài)的存儲(chǔ)單元;

  SLA--用于保存總線上節(jié)點(diǎn)地址并確定傳輸方向的存儲(chǔ)單元;

  NUMBYTE--待發(fā)送或接收的字節(jié)數(shù)存儲(chǔ)單元;

  MTD--發(fā)送數(shù)據(jù)緩沖區(qū);

  MRD--接收數(shù)據(jù)緩沖區(qū)。

  以上符號(hào)中RAM0、RIO、SLA、NUMBYTE為頁(yè)內(nèi)地址,與當(dāng)前的頁(yè)指針DP內(nèi)容設(shè)置有關(guān);MTD、MRD為絕對(duì)地址,與DP內(nèi)容無(wú)關(guān)。

 ?、?資源占用。使用了輔助寄存器AR0、AR1、AR2、AR6、ACC、ASPCR、IOSR等資源。

 ?、?應(yīng)用接口。軟件包將wrnbyte、rdnbyte作為唯一的出口接口,用戶僅需正確設(shè)置對(duì)應(yīng)儲(chǔ)存單元的內(nèi)容,調(diào)用相應(yīng)子函數(shù)即可:

  splk #SLAR/ SLAW,SLA;寫(xiě)入傳輸節(jié)點(diǎn)地址及傳輸方向

  splk #N,NUMBYTE ;寫(xiě)入待傳輸字節(jié)數(shù)

  ;若輸出,設(shè)置輸出緩沖區(qū)內(nèi)容

  call wrnbyte/rdnbyte[!--empirenews.page--]

  3 應(yīng)用實(shí)例

  3.1 器件相關(guān)功能簡(jiǎn)介

  X1203是帶時(shí)鐘/日歷電路和兩個(gè)鬧鐘(報(bào)警)的低功耗CMOS實(shí)時(shí)時(shí)鐘芯片。提供了雙埠時(shí)鐘和報(bào)警寄存器,在讀寫(xiě)操作期間也能精確工作。其工作電壓從2.5~6 V均可,工作電流小于1uA。時(shí)鐘使用低成本的32.768 kHz晶體輸入,以秒、分、時(shí)、日、星期、月和年為單位記錄時(shí)間,具有閏年自動(dòng)矯正功能,并對(duì)少于31天的月份自動(dòng)調(diào)整;可通過(guò)設(shè)置中斷標(biāo)志按指定時(shí)間激活中斷引腳,滿足大多數(shù)用戶對(duì)定時(shí)器編程的需要。該芯片引腳結(jié)構(gòu)如圖1所示(SOIC封裝)。

  其中SCL為時(shí)鐘輸入端,數(shù)據(jù)隨該時(shí)鐘信號(hào)同步輸入器件或從器件輸出。此引腳上的輸入緩沖器始終激活。SDA端為雙向引腳,用于串行數(shù)據(jù)的輸入輸出;具有漏極開(kāi)路,可與其它漏極開(kāi)路或集電極開(kāi)路輸出進(jìn)行線"或";需上拉電阻,與SCL引腳配合,可實(shí)現(xiàn)400 kHz的2線I2C接口。VBack為備用電源輸入端,用于VCC出現(xiàn)故障時(shí)向器件供電。是中斷信號(hào)輸出端,可通過(guò)設(shè)置報(bào)警寄存器按指定時(shí)間在該端產(chǎn)生報(bào)警信號(hào);漏極開(kāi)路,低電平有效。X1、X2分別為反相放大器的輸入、輸出端;可在X1端接入32.768 kHz的方波基準(zhǔn),或在X1、X2端接入32.768 kHz的石英晶振,配置成片內(nèi)振蕩器,在初始上電后至少有一個(gè)字節(jié)寫(xiě)入RTC寄存器時(shí),時(shí)鐘才開(kāi)始計(jì)數(shù)。

  X1203中的時(shí)鐘/控制寄存器(CCR)分5部分:2個(gè)8字節(jié)報(bào)警寄存器(Alarm0、Alarm1),1個(gè)1字節(jié)控制寄存器,1個(gè)8字節(jié)實(shí)時(shí)時(shí)鐘寄存器和1個(gè)1字節(jié)狀態(tài)寄存器。通過(guò)報(bào)警寄存器可設(shè)置報(bào)警發(fā)生的時(shí)間,控制寄存器可使能或禁止報(bào)警中斷信號(hào)的輸出,實(shí)時(shí)時(shí)鐘寄存器以BCD碼存儲(chǔ)了秒、分、時(shí)、日、星期、月和年,狀態(tài)寄存器中保存了用于報(bào)警狀態(tài)標(biāo)志位及讀寫(xiě)使能狀態(tài)位。其中狀態(tài)寄存器設(shè)置決定著數(shù)據(jù)是否能成功地寫(xiě)入。該寄存器如表1所列。

  BAT標(biāo)識(shí)器件當(dāng)前用VBack還是用VCC工作。AL1、AL0標(biāo)識(shí)Alarm0、Alarm1是否實(shí)時(shí)時(shí)鐘匹配。RTCF表示實(shí)時(shí)時(shí)鐘是否失效,在總電源失效后該位置1。RWEL為寄存器寫(xiě)使能鎖存,為0表示禁止,在任何寫(xiě)時(shí)鐘/控制寄存器之前必須將該位置1。WEL為寫(xiě)使能鎖存,低表示禁止,通過(guò)該位寫(xiě)1、其它位寫(xiě)0,可使該位置位;通過(guò)該位寫(xiě)0、其它位寫(xiě)0,可使該位清0。只有按規(guī)定順序設(shè)置RWEL和WEL,才能成功寫(xiě)入CCR。

  目前,很多DSP芯片尚不直接支持I2C的接口,F(xiàn)206也不例外,因而這里采用2根通用I/O口線模擬I2C接口。F206與X1203的接口采用如圖2所示的接口方案。

  圖2中在X1、X2端接入32.768 kHz的石英晶振,將時(shí)鐘源配置為片內(nèi)振蕩器。在VCC和VBACK之間通過(guò)二極管和電阻相連,并與地間加入1個(gè)0.47 F的大電容。這樣,在電源出現(xiàn)故障或系統(tǒng)電源關(guān)閉時(shí),仍可靠VBACK端的大電容供電維持時(shí)鐘芯片的正常工作。它與F206間接口采用3根口線,這里采用IO2模擬通信用的時(shí)鐘信號(hào),IO3作為數(shù)據(jù)輸入、輸出口線。端可根據(jù)用戶需要而定,若需要時(shí)鐘芯片產(chǎn)生中斷,可將該端接到F206的中斷口線上。注意其中的SDA端和端為漏極開(kāi)路,必須加上拉電阻,否則不能正常通信。

  3.2 X1203的讀寫(xiě)操作

  這里僅給出F206對(duì)X1203進(jìn)行讀寫(xiě)的基本流程,如圖3、圖4所示,分別為對(duì)時(shí)鐘芯片的讀、寫(xiě)過(guò)程。其中進(jìn)行寄存器寫(xiě)時(shí),須注意SR寄存器中WEL和RWEL的設(shè)置是否正確,即首先設(shè)置WEL有效,而后將WEL、RWEL都置1,否則數(shù)據(jù)將不能正確寫(xiě)入。在寫(xiě)結(jié)束后,應(yīng)將WEL、RWEL置為無(wú)效,以免產(chǎn)生誤操作。

  此外還須指出,在系統(tǒng)首次上電后(VBack和VCC都失效后),至少有一字節(jié)寫(xiě)入RTC寄存器時(shí),系統(tǒng)才開(kāi)始工作。在實(shí)際使用中,應(yīng)首先判斷SR中的RTCF位是否為1,若是,表明系統(tǒng)為首次使用或VBack和VCC都已失效,須對(duì)X1203至少進(jìn)行一次寫(xiě)入操作,使其正常計(jì)數(shù)。[!--empirenews.page--]

  I2C總線應(yīng)用已日益廣泛,而其協(xié)議的復(fù)雜性和操作的特殊性又限制了推廣速度。本文介紹的一種基于DSP的虛擬I2C總線軟件包,簡(jiǎn)化了TMS320C2XX與I2C器件間接口程序設(shè)計(jì),用戶無(wú)需了解I2C總線協(xié)議的細(xì)節(jié),僅需通過(guò)唯一的接口界面wrnbyte/ rdnbyte即可實(shí)現(xiàn)相應(yīng)的接口。本文還給出了一個(gè)TMS320F206與時(shí)鐘芯片X1203間的接口實(shí)例,介紹了軟件包的使用方法,希望能供讀者參考。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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