女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(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口?,F(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是可讀寫寄存器,其中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總線的原理寫出啟動(dòng)、結(jié)束、發(fā)送應(yīng)答信號(hào)及讀、寫一個(gè)字節(jié)的程序,然后根據(jù)SAA7111的寄存器操作格式寫出讀、寫寄存器的程序,最后根據(jù)以上子程序?qū)懗龀跏蓟樱粒粒罚保保钡某绦蚨?。SAA7111的初始化流程如圖4所示。

以單片機(jī)為例,硬件連接見(jiàn)前文圖1所示,其中IICSA是SAA7111的讀寫控制位,IICSA=0表示SAA7111的寫地址為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)寫入一組數(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寫地址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寫地址送入A

LCALL WBYTE ;調(diào)用寫一個(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)系本站刪除。
換一批
延伸閱讀

在電子設(shè)計(jì)開(kāi)發(fā)中I2C大家已經(jīng)很熟悉了,每一種電子產(chǎn)品小到電子開(kāi)關(guān),大到衛(wèi)星通信都會(huì)利用的I2C總線。據(jù)統(tǒng)計(jì)I2C在電子產(chǎn)品中占據(jù)了93%的份額,幾乎任何一種電路都要使用。

關(guān)鍵字: I2C總線

I2C總線是由Philips公司開(kāi)發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。I2C總線(Inter-Integrated Circuit)是一種同步半雙工串行通信總線,是P...

關(guān)鍵字: I2C總線 SDA

在電子通信領(lǐng)域,I2C(Inter-Integrated Circuit)總線作為一種廣泛應(yīng)用的串行通信協(xié)議,以其簡(jiǎn)單、高效的特點(diǎn),在微控制器、傳感器、存儲(chǔ)器等多種設(shè)備間建立了穩(wěn)定的連接。然而,I2C總線的穩(wěn)定工作離不開(kāi)...

關(guān)鍵字: I2C總線 上拉電阻

I2C(Inter-Integrated Circuit)總線是Philips公司推出的一種雙向二線制同步串行總線,僅用兩根線即可實(shí)現(xiàn)器件之間的數(shù)據(jù)傳送。目前很多芯片集成了I2C總線接口,如CYGNAL公司的C805IF...

關(guān)鍵字: I2C總線 引腳功能 時(shí)序

連接在總線上的設(shè)備與總線的連接電路稱為總線接口。

關(guān)鍵字: 總線接口 PCI PC

來(lái)源:電子電路設(shè)計(jì)一、前言I2C總線是由Philips公司開(kāi)發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。二、I2C總線開(kāi)發(fā)設(shè)計(jì)需要注意點(diǎn)1、總線容量及驅(qū)動(dòng)能力I2C總線的外圍...

關(guān)鍵字: I2C總線

關(guān)注星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容來(lái)源|?網(wǎng)絡(luò)如果一座只能容一個(gè)人來(lái)往的獨(dú)木橋,兩端的人都想要過(guò)橋,為了不擁擠、阻塞,那我們就得采取有效的辦法。比如規(guī)定某段時(shí)間哪端的人過(guò)橋,另一端的人就等著該他過(guò)橋的時(shí)間段的到來(lái),同時(shí)也還可...

關(guān)鍵字: 總線技術(shù)

任何一個(gè)微處理器都要與一定數(shù)量的部件和外圍設(shè)備連接,但如果將各部件和每一種外圍設(shè)備都分別用一組線路與CPU直接連接,那么連線將會(huì)錯(cuò)綜復(fù)雜,甚至難以實(shí)現(xiàn)。為了簡(jiǎn)化硬件電路設(shè)計(jì)、簡(jiǎn)化系統(tǒng)結(jié)構(gòu),常用一組線路,配置以適當(dāng)?shù)慕涌陔?..

關(guān)鍵字: 微機(jī) 總線技術(shù)

01總線容量與驅(qū)動(dòng)能力I2C總線的外圍擴(kuò)展器件都是CMOS器件,總線有足夠的電流驅(qū)動(dòng)能力,因此總線上擴(kuò)展的節(jié)點(diǎn)數(shù)不由電流負(fù)載能力決定,而由電容負(fù)載確定。總線上每個(gè)實(shí)際節(jié)點(diǎn)器件的總線接口都有一定的等效電容,等效電容的存在會(huì)...

關(guān)鍵字: I2C總線

摘要:隨著I2C總線應(yīng)用的越來(lái)越廣泛,其電路簡(jiǎn)單,編程方便,易于系統(tǒng)標(biāo)準(zhǔn)化與維護(hù)的優(yōu)點(diǎn)也日益顯現(xiàn)出來(lái)。 文章在分析了I2C總線的基本概念和工作原理的基礎(chǔ)上,重點(diǎn)介紹了基于Wolfson音頻SoC的I2C總線接口的系統(tǒng)結(jié)...

關(guān)鍵字: I2C總線 音頻 SoC Wolfson
關(guān)閉