當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]介紹了虛擬I2C總線技術(shù)的特點(diǎn),描述了用單片機(jī)(C51)的普通I/O口以及對(duì)DSP(TMS320VC5402)的McBSP口和HPI-8口模擬I2C總線接口的設(shè)計(jì)方案,最后給出了對(duì)SAA7111進(jìn)行初始化的方法。

    摘要:介紹了虛擬I2C總線技術(shù)的特點(diǎn),描述了用單片機(jī)(C51)的普通I/O口以及對(duì)DSP(TMS320VC5402)的McBSP口和HPI-8口模擬I2C總線接口的設(shè)計(jì)方案,最后給出了對(duì)SAA7111進(jìn)行初始化的方法。

    關(guān)鍵詞:虛擬I2C總線技術(shù);SAA7111;DSP;I2C總線

SAA7111是Philips半導(dǎo)體公司生產(chǎn)的一種視頻輸入處理器(VIP),在視頻采集系統(tǒng)中,通常需要諸如SAA7111之類的視頻解碼器作為模擬視頻前端,而視頻解碼器的初始化主要通過(guò)I2C總線接口來(lái)完成。然而,目前的單片機(jī)和DSP器件大多都不帶有I2C總線接口,為此,本文提出了用虛擬總線技術(shù)來(lái)模擬實(shí)現(xiàn)I2C總線功能,利用DSP的多功能I/O口和單片機(jī)的普通I/O口模擬I2C總線接口設(shè)計(jì),從而實(shí)現(xiàn)DSP和單片機(jī)對(duì)SAA7111的初始化與控制的新方法。

1 虛擬I2C總線技術(shù)

1.1 多主方式下的I2C總線虛擬

I2C總線是Philips公司推出的一種連接IC器件的二線制總線,它既可以用于構(gòu)成多主系統(tǒng),又可工作在單主方式下。因?yàn)槎嘀鞣绞较聲?huì)出現(xiàn)多主競(jìng)爭(zhēng)的復(fù)雜狀態(tài),此時(shí)如果系統(tǒng)中沒(méi)有帶I2C總線接口的主控制器,那么要構(gòu)成多主系統(tǒng)的虛擬I2C總線,就必須在虛擬I2C總線中解決多主競(jìng)爭(zhēng)狀態(tài),而這幾乎是不可能的,鑒于此,多主I2C總線系統(tǒng)必須使用帶I2C總線接口的控制器。

    1.2 單主方式下的I2C總線虛擬

當(dāng)I2C總線中只有一個(gè)主器件時(shí),I2C總線系統(tǒng)的工作方式稱為單主方式。在單主方式下,由于I2C總線上只有一個(gè)主器件成為主節(jié)點(diǎn),因此,該主器件會(huì)永遠(yuǎn)占據(jù)總線,而不會(huì)出現(xiàn)總線競(jìng)爭(zhēng),此時(shí)的主節(jié)點(diǎn)也不必有自己的節(jié)點(diǎn)地址。在這種情況下,主器件若沒(méi)有I2C總線接口,就可以用主控制器的I/O口來(lái)模擬I2C總線接口。

目前,許多視頻、音像電器中都采用了虛擬I2C總線技術(shù)。SAA7111的初始化控制操作就工作在單主方式下,因此可以用虛擬I2C總線技術(shù)來(lái)實(shí)現(xiàn)SAA7111的初始化控制。下面分別以單片機(jī)和DSP為例來(lái)說(shuō)明虛擬I2C總線技術(shù)的實(shí)現(xiàn)方法。

2 用單片機(jī)普通I/O模擬I2C總線接口

用單片機(jī)普通I/O口模擬I2C總線接口時(shí),其硬件配置非常簡(jiǎn)單,因?yàn)閱纹瑱C(jī)的I/O口很多,并且大多I/O口都是雙向的,因此可以直接用兩個(gè)I/O口線作為I2C總線的串行時(shí)鐘線SCL和串行數(shù)據(jù)線SDA。圖1所示為C51 單片機(jī)與SAA7111的硬件連接圖。 當(dāng)硬件配置完成后,根據(jù)I2C總線的時(shí)序特性可用軟件編程來(lái)模擬I2C總線接口。圖2為I2C總線的起始信號(hào)(S),它表示在SCL為高電平期間,數(shù)據(jù)線SDA由高電平向低電平變化將啟動(dòng)I2C總線。下面是相應(yīng)的匯編程序。其它子程序可以參考I2C總線時(shí)序來(lái)實(shí)現(xiàn),這里就不一一給出了。

啟動(dòng)I2C總線:

SETB P1.0 ; SDA=1

SETB P1.1 ; SCL=1

CALL DELAY ;保持?jǐn)?shù)據(jù)時(shí)間,DELAY

為延遲子程序

CLR P1.0 ; SDA=0

CALL DELAY

CLR P1.1 ;鉗定總線,開(kāi)始發(fā)送數(shù)據(jù)

RET

3 用DSP外圍接口模擬I2C總線接口

由于TMS320VC5402只有兩個(gè)通用的I/O引腳,且都是單向的,而在I2C總線中,SDA必須是雙向的,因此必須借助于其它總線接口。

3.1 用McBSP口模擬I2C總線接口

首先,通過(guò)配置串口控制寄存器SPCR1和SPCR2以及引腳控制寄存器PCR的禁用McBSP功能,以將McBSP引腳(包括CLKX、CLKR、DX、DR、FSX、FSR、和CLKS)作為通用I/O口。現(xiàn)以發(fā)送器為例,當(dāng)SPCR2的XRST=0、PCR的XIOEN=1時(shí),串口發(fā)送器無(wú)效,FSX、CLKX用作通用I/O引腳。FSX和CLKX作為通用I/O端口的引腳設(shè)置情況如表1所列。以McBSP0為例,也可以從FSX0和CLKX0引出兩條線分別表示SDA線和SCL線。

表1 將FXS和CLKX作為通用I/O的設(shè)置方法

引腳 FSX數(shù)據(jù)方向 CLKX數(shù)據(jù)方向 FSX輸出值 CLKX輸出值
FSXM CLKXM FSXP CLKXP
0 1 0 1 0 1 0 1
FSX 輸入 輸出 - - - 1 - -
CLKX - - 輸入 輸出 - - 0 1

注:“-”表示無(wú)影響

圖3為I2C總線的結(jié)束信號(hào)時(shí)序,下面是相應(yīng)的程序:

#define SPSA0 0x0038 //SPSA0指向McBSP0子地址寄存器

#define SPSD0 0x0039 //SPSD0指向McBSP0

子區(qū)數(shù)據(jù)存儲(chǔ)器

#define PCR0 ‘0x000E //PCR0代表子地址

0x000E

結(jié)束I2C總線:

void stop ? ? ?

*?short *?SPSA0=PCR0; //SPSA0指向子

地址PCR0

*?short *?SPSD0=0x2A02? //初始化PCR0,

令FSX0=0,CLKX=1。即SDA=0,SCL=1

delay? ?; //延時(shí)。Delay()為延時(shí)子程序

*?short *?SPSD0=0x2A0A; //令FSX0=1,

CLKX=1。即SDA=1,SCL=1

}

3.2 用HPI-8口模擬I2C總線接口

同樣,首先必須禁用HPI-8的功能,這可通過(guò)設(shè)置HPI-8控制寄存器(HPIC)的HPIENA為0來(lái)完成。當(dāng)HPI-8工作在通用I/O端口(GPIO)方式時(shí),通過(guò)通用I/O控制寄存器(GPIOCR)和通用I/O狀態(tài)寄存器(GPIOSR)可以控制GPIO方式下的HPI-8數(shù)據(jù)引腳。GPIOCR的DIRx(x=0~7)位為低電平表明HDx引腳為輸入,高電平表明HDx為輸出。 GPIOSR的D/Ox位則反映了引腳HDx的邏輯值,D/Ox為低電平表明HDx輸入/輸出為0,D/Ox為高電平表明HDx輸入/輸出為1。因?yàn)樵冢牵校桑戏绞较拢龋模鵀殡p向I/O端口,因此可以任意選擇一個(gè)HDx(如HD0)作為SDA,再用另外一個(gè)HDx(HD1)作為SCL以實(shí)現(xiàn)I2C總線接口的模擬。

4 SAA7111的初始化

SAA7111內(nèi)部有32個(gè)寄存器(Subaddress00~1FH),其中22個(gè)是可編程的。00H、1A~1CH、1FH是只讀寄存器,其中00H描述的是芯片版本信息;1A~1CH是文本信息檢測(cè)和解碼寄存器,一般很少用到;1FH用來(lái)描述芯片的狀態(tài)。02H~12H是可讀寫(xiě)寄存器,其中02H~05H是模擬輸入控制寄存器,02H用于設(shè)置模擬視頻信號(hào)輸入方式(共8種),03H~05H用于設(shè)置增益控制方式, 06H~12H主要用于設(shè)置解碼方式,通過(guò)配置這些寄存器可以設(shè)置行同步信號(hào)的開(kāi)始和結(jié)束位置,并可確定亮度、色度、飽和度的大小以及輸出圖像數(shù)據(jù)信號(hào)的格式。 01H、13H~19H、1DH~1EH寄存器保留使用。需要注意的是,在讀00H寄存器前,必須將它初始化為0。在對(duì)多個(gè)連續(xù)的寄存器進(jìn)行操作時(shí),寄存器地址有自動(dòng)加1功能。內(nèi)部寄存器控制位的功能含義詳見(jiàn)參考文獻(xiàn)。

可以采用上面任何一種方法來(lái)模擬I2C總線接口,只是具體的編程方法應(yīng)視不同的控制器而異。但軟件編程具有相同之處,首先必須根據(jù)I2C總線的原理寫(xiě)出啟動(dòng)、結(jié)束、發(fā)送應(yīng)答信號(hào)及讀、寫(xiě)一個(gè)字節(jié)的程序,然后根據(jù)SAA7111的寄存器操作格式寫(xiě)出讀、寫(xiě)寄存器的程序,最后根據(jù)以上子程序?qū)懗龀跏蓟樱粒粒罚保保钡某绦蚨?。SAA7111的初始化流程如圖4所示。

以單片機(jī)為例,硬件連接見(jiàn)前文圖1所示,其中IICSA是SAA7111的讀寫(xiě)控制位,IICSA=0表示SAA7111的寫(xiě)地址為48H。這里把SAA7111初始化設(shè)定為:一路模擬視頻信號(hào)輸入(AI12)、自動(dòng)增益控制、625行50Hz PAL制式、YUV 422 16位數(shù)字視頻信號(hào)輸出、設(shè)置默認(rèn)的圖象對(duì)比度、亮度及飽和度。相應(yīng)的寄存器初始化值如表2所列。下面是向SAA7111的19個(gè)連續(xù)的子地址寄存器(00H~12H)寫(xiě)入一組數(shù)據(jù)的的程序。

表2 寄存器初始化值

SubAddress Data SubAddress Data
00H 00H 01H 00H
02H C1H 03H 33H
04H 00H 05H 00H
06H EBH 07H E0H
08H 88H 09H 01H
0AH 80H 0BH 47H
0CH 40H 0DH 00H
0EH 01H 0FH 00H
10H 40H 11H 1CH
12H 03H    

入口參數(shù):SAA7111寫(xiě)地址48H、子地址00H、發(fā)送數(shù)據(jù)緩沖區(qū)DBUF、發(fā)送字節(jié)數(shù)19。

WNBYTE:MOV R3,19 ;發(fā)送字節(jié)數(shù)19送入R3

LCALL START ;調(diào)用啟動(dòng)子程序

MOV A,#48H ;SAA7111寫(xiě)地址送入A

LCALL WBYTE ;調(diào)用寫(xiě)一個(gè)字節(jié)子程序

LCALL CHECK ;調(diào)用檢查應(yīng)答位子程序

JB F0,NEXT0 ;有應(yīng)答,轉(zhuǎn)到NEXT0,其

中F0為應(yīng)答標(biāo)志位,F0=1

表示有應(yīng)答

AJMP WNBYTE ;無(wú)應(yīng)答,重新發(fā)送

NEXT0:MOV A, 00H ;SAA7111子地址送入A

LCALL WBYTE

LCALL CHECK

JB F0,NEXT1

AJMP START

    MOV R2,#DBUF ;發(fā)送數(shù)據(jù)緩沖區(qū)首地址

送入R2

NEXT1:MOV A, @R2 ;發(fā)送數(shù)據(jù)緩沖區(qū)數(shù)據(jù)送

入A

LCALL WBYTE

LCALL CHECK

JNB F0,WNBYTE ;未應(yīng)答,重新發(fā)送

INC R2

DJNZ R3,NEXT1 ;發(fā)送完否?未完,繼續(xù)發(fā)送

EXIT: LCALL STOP ;發(fā)送完畢?調(diào)用結(jié)束子程序

RET

5 結(jié)束語(yǔ)

對(duì)一個(gè)典型的以DSP為核心處理器的視頻采集系統(tǒng)而言,用單片機(jī)普通I/O口模擬I2C總線接口的編程比較簡(jiǎn)單,操作也很方便,但是相應(yīng)的會(huì)增加設(shè)計(jì)成本,因?yàn)橄到y(tǒng)要額外的增加一片單片機(jī)。而用DSP的McBSP口或者HPI-8口模擬I2C總線接口,雖然不必考慮成本問(wèn)題,但是必須要禁用McBSP或者HPI-8的功能,這對(duì)系統(tǒng)中DSP功能的擴(kuò)展來(lái)說(shuō)是不利的。

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

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

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

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

關(guān)鍵字: 汽車 人工智能 智能驅(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ā)表演講稱,數(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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