www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]I2C總線是PHILIPS公司推出的新一代串行總線,其應(yīng)用日漸廣泛。目前許多單片機(jī)都帶有I2C總線接口,能方便地實(shí)現(xiàn)I2C總線設(shè)計(jì);對沒有I2C總線的微控制器(MCU),可以采用兩條I/O口線進(jìn)行模擬。在

I2C總線是PHILIPS公司推出的新一代串行總線,其應(yīng)用日漸廣泛。目前許多單片機(jī)都帶有I2C總線接口,能方便地實(shí)現(xiàn)I2C總線設(shè)計(jì);對沒有I2C總線的微控制器(MCU),可以采用兩條I/O口線進(jìn)行模擬。在以單片機(jī)為MCU的系統(tǒng)中很容易實(shí)現(xiàn)I2C總線的模擬擴(kuò)展,有現(xiàn)成的通用軟件包可以使用。

對有些基于CPLD的系統(tǒng),要與帶有I2C總線接口的外圍器件連接,實(shí)現(xiàn)起來相對復(fù)雜一些。為實(shí)現(xiàn)系統(tǒng)中的I2C總線接口,可以另外引入單片機(jī),也可以采用PCF8584或者PCA9564器件(PHILIPS公司推出的專用I2C總線擴(kuò)展器)進(jìn)行擴(kuò)展,但這樣會(huì)增加系統(tǒng)成本,使系統(tǒng)冗余復(fù)雜。像ALTERA、XILINX等一些大公司有專用的基于CPLD器件的I2C總線IP核,但這些IP核的通用性不強(qiáng),需要的外圍控制信號(hào)較多,占用系統(tǒng)很大的資源,因此直接采用這種IP核不可取。

鑒于此,依照I2C總線協(xié)議的時(shí)序要求,在基于CPLD的系統(tǒng)中開發(fā)了自己的I2C總線IP核。對于一些帶有I2C總線接口的外圍器件較少、對I2C總線功能要求較簡單的CPLD系統(tǒng),自主開發(fā)IP核顯得既經(jīng)濟(jì)又方便。

1 I2C總線的協(xié)議

I2C總線僅僅依靠兩根連線就實(shí)現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送:一根為串行數(shù)據(jù)線(SDA),一根為串行時(shí)鐘線(SCL)。該總線協(xié)議有嚴(yán)格的時(shí)序要求。總線工作時(shí),由時(shí)鐘控制線SCL傳送時(shí)鐘脈沖,由串行數(shù)據(jù)線SDA傳送數(shù)據(jù)。總線傳送的每幀數(shù)據(jù)均為一個(gè)字節(jié)(8 bit),但啟動(dòng)I2C總線后,傳送的字節(jié)個(gè)數(shù)沒有限制,只要求每傳送一個(gè)字節(jié)后,對方回應(yīng)一個(gè)應(yīng)答位(Acknowledge Bit)。發(fā)送數(shù)據(jù)時(shí)首先發(fā)送數(shù)據(jù)的最高位(MSB)。

I2C總線協(xié)議規(guī)定,啟動(dòng)總線后第一個(gè)字節(jié)的高7位是從器件的尋址地址,第8位為方向位("0"表示主器件對從器件的寫操作;"1"表示主器件對從器件的讀操作),其余的字節(jié)為操作的數(shù)據(jù)??偩€每次傳送開始時(shí)有起始信號(hào),結(jié)束時(shí)有停止信號(hào)。在總線傳送完一個(gè)或幾個(gè)字節(jié)后,可以使SCL線的電平變低,從而使傳送暫停。 圖1列出了I2C總線上典型信號(hào)的時(shí)序,圖2表示I2C總線上一次完整的數(shù)據(jù)傳送過程。

依據(jù)I2C總線的傳輸協(xié)議,總線工作時(shí)的具體時(shí)序如下:

起始信號(hào)(S):在時(shí)鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由高電平向低電平的變化,用于啟動(dòng)I2C總線,準(zhǔn)備開始傳送數(shù)據(jù);

停止信號(hào)(P):在時(shí)鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由低電平向高電平的變化,用于停止I2C總線上的數(shù)據(jù)傳送;

應(yīng)答信號(hào)(A):I2C總線的第9個(gè)脈沖對應(yīng)應(yīng)答位,若SDA線上顯示低電平則為總線"應(yīng)答"(A),若SDA線上顯示高電平則為"非應(yīng)答"(/A);

數(shù)據(jù)位傳送: I2C總線起始信號(hào)或應(yīng)答信號(hào)之后的第1~8個(gè)時(shí)鐘脈沖對應(yīng)一個(gè)字節(jié)的8位數(shù)據(jù)傳送。在脈沖高電平期間,數(shù)據(jù)串行傳送;在脈沖低電平期間,數(shù)據(jù)準(zhǔn)備,允許總線上數(shù)據(jù)電平變化。

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

2.1 實(shí)例模型介紹

現(xiàn)舉某應(yīng)用實(shí)例,要求對顯示器的視頻信號(hào)進(jìn)行采集、處理和再顯示,整個(gè)系統(tǒng)采用CPLD器件進(jìn)行控制。信號(hào)采集采用A/D公司的專用視頻采集芯片AD9883AD9883,該芯片在使用前需要依據(jù)實(shí)際的功能指標(biāo)進(jìn)行初始化。初始化過程依靠AD9883的SDA和SCL兩引腳進(jìn)行。在系統(tǒng)中用CPLD器件?ALTERA公司的EPM3256AEPM3256A?實(shí)現(xiàn)初始化:按照I2C總線協(xié)議向AD9883的19個(gè)內(nèi)部寄存器(01H~13H)寫入19組固定的8位數(shù)據(jù);第14H寄存器為只讀型同步檢測寄存器,僅用于檢測幾個(gè)關(guān)鍵的數(shù)據(jù)設(shè)置。

可見該I2C總線模型如下:單主操作,只實(shí)現(xiàn)簡單的寫和讀操作(亦可只有寫操作,只是硬件調(diào)試的時(shí)候會(huì)麻煩些),寫地址連續(xù),沒有競爭和仲裁,是很簡單的I2C總線系統(tǒng)。由此設(shè)計(jì)了如圖3所示的IP核。其中,RESET為復(fù)位信號(hào),CLK為系統(tǒng)時(shí)鐘。

為了軟件仿真方便,把雙向數(shù)據(jù)線SDA用分離的兩條線模擬:SDA為數(shù)據(jù)輸出,SDAACK為SDA的應(yīng)答信號(hào)。軟件仿真成功后,只要把SDA設(shè)置為雙向,稍微修改一下程序就可以向CPLD器件下載,進(jìn)行實(shí)際應(yīng)用。

對AD9883內(nèi)部地址連續(xù)的寄存器進(jìn)行初始化,I2C總線上傳輸?shù)臅r(shí)序信號(hào)依次為:開始信號(hào)(S);從器件地址和寫操作位(SLAW);內(nèi)部寄存器基地址(Base Address);寫入基地址的數(shù)據(jù)(Data0);寫入下一地址(Base Address+1)的數(shù)據(jù)(Data1);寫入地址(Base Address+2)的數(shù)據(jù)(Data2);……;寫入地址(Base Address+18)的數(shù)據(jù)(Data18);停止信號(hào)(P)。

針對AD9883,如果電路中的A0引腳(55#)接電源,則SLAW="10011001";Base Address="00000001",Data0~Data18是依據(jù)實(shí)際需要寫入的初始化數(shù)據(jù)。

2.2 IP核程序的編寫

整個(gè)程序用VHDL語言編制,SCL輸出時(shí)鐘的設(shè)計(jì)是基于CLK輸入時(shí)鐘的64分頻的。程序由三個(gè)狀態(tài)組成:開始(START)、轉(zhuǎn)換(SHIFT)和應(yīng)答(ACK)。狀態(tài)定義如下:

type states is (start,shift,ack);??
signal my_states ?states;
?
下面給出部分進(jìn)程的源代碼以供參考。

2.2.1開始信號(hào)的產(chǎn)生

PROCESS(clk)?
if clk'event and clk='1' then
TWCR<=DATAIN;?
SCL<='1';
else
TWCR<=(others=>'0');??
end if;?

if TWCR="10000000" then --比較寄存器TWCR的開始
值設(shè)置(由用戶決定)
STRB<='1';?
end if?;

if STRB='1' then --開始條件

INT<=INT+"000001";? --INT為時(shí)鐘脈沖計(jì)數(shù)
if INT<="011000" then --產(chǎn)生SDA的下降沿
SDA<='1';?
else
SDA<='0';?
end if;?

if INT>="011110" then --STRB歸0,保證只產(chǎn)生
一次開始信號(hào)
STRB <='0';?
INT<="00000?quot;;?
end if;?

end if;
?
等所有的初始化數(shù)據(jù)傳輸完畢后即產(chǎn)生停止信號(hào),過程與上面相類似,在此省略。

2.2.2 數(shù)據(jù)轉(zhuǎn)換過程

數(shù)據(jù)轉(zhuǎn)換過程采用移位傳輸,傳輸8位之后即進(jìn)入應(yīng)答狀態(tài)。

when shift=>
if cnt="010000" then --cnt為clk脈沖計(jì)數(shù),由
實(shí)際的時(shí)鐘頻率決定cnt的值
COUNT<=COUNT+"0001";? --COUNT為數(shù)據(jù)移位個(gè)
數(shù)計(jì)數(shù)?MSR為移位寄存器
MSR<=MSR(6 downto 0)&txtag;?
txtag<='0';?

if COUNT="1000" then
my_states<=ack;?
TACK<='1';? --TACK為應(yīng)答標(biāo)志位
else
SDA<=MSR(7);??
my_states<=shift;?
TACK<='0';?
end if;?

end if;?

2.2.3 數(shù)據(jù)輸入

一般情況下,I2C總線傳輸?shù)臄?shù)據(jù)要由外部ROM或其它專門的數(shù)據(jù)存儲(chǔ)區(qū)來存儲(chǔ),但在數(shù)據(jù)相對固定且數(shù)據(jù)量不是很大的情況下,可以將初始化的數(shù)據(jù)寫在程序中,這樣可減少頻繁的數(shù)據(jù)交換,簡化操作。AD9883的初始化數(shù)據(jù)就屬于這種情況,可以通過檢測應(yīng)答信號(hào)來改變輸入的值。程序如下: PROCESS(clk)? --數(shù)據(jù)輸入
if clk'event and clk='1' then
CASE ackint IS --ackint為應(yīng)答計(jì)數(shù),每應(yīng)答
一次,輸入改變一次
when "00000"=> DATAIN<="10000000";?
when "00001"=> DATAIN<="01010010";?
when "00010"=> DATAIN<="11010000";?
……
when "10010"=> DATAIN<="00000000";?
when "10011"=> DATAIN<="00000000";?
when others=> DATAIN<="ZZZZZZZZ";?
END CASE;?
end if;?

2.3 仿真結(jié)果

把自主開發(fā)的IP核置于MAX+PLUS II 10.0開發(fā)環(huán)境下,選用EPM3128ATC100-10器件,經(jīng)過編譯、調(diào)試與仿真,證明該程序符合設(shè)計(jì)要求。圖4是模擬產(chǎn)生開始信號(hào)并傳輸兩組二進(jìn)制數(shù)據(jù)"10011001"和"10101010"(十進(jìn)制表示為153和170)的仿真波形。圖5是傳輸數(shù)據(jù)"10011001"后沒有應(yīng)答時(shí)的仿真結(jié)果,此時(shí)總線處于暫停狀態(tài)。

仿真完成后,通過編程電纜將pof文件下載到實(shí)際電路的EPM3128ATC100-10EPM3128ATC100-10中,然后對AD9883AD9883進(jìn)行初始化,結(jié)果工作正常,這進(jìn)一步驗(yàn)證了采用該自主開發(fā)的IP核完全可滿足I2C總線的時(shí)序要求,能實(shí)現(xiàn)I2C總線的功能。



參考文獻(xiàn):

[1].AD9883datasheethttp://www.dzsc.com/datasheet/AD9883_251913.html.
[2].EPM3256Adatasheethttp://www.dzsc.com/datasheet/EPM3256A_301030.html.
[3].EPM3128ATC100-10datasheethttp://www.dzsc.com/datasheet/EPM3128ATC100-10_1096979.html.


來源:零八我的愛0次

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

在現(xiàn)代電子系統(tǒng)中,電源扮演著核心角色,如同人體的心臟,為整個(gè)系統(tǒng)穩(wěn)定運(yùn)行提供不可或缺的動(dòng)力支持。從日常生活中的智能設(shè)備,到復(fù)雜精密的工業(yè)控制系統(tǒng),再到關(guān)乎國計(jì)民生的航空航天、醫(yī)療等關(guān)鍵領(lǐng)域,電源的可靠性直接決定了系統(tǒng)的穩(wěn)...

關(guān)鍵字: 電源 設(shè)備 系統(tǒng)

在現(xiàn)代計(jì)算機(jī)中,CPU(中央處理器)是最重要的組成部分之一。它負(fù)責(zé)執(zhí)行程序指令和處理數(shù)據(jù),因此CPU的性能直接影響到計(jì)算機(jī)的整體運(yùn)行效率。然而,許多用戶在使用計(jì)算機(jī)時(shí)可能會(huì)遇到CPU占用率過高的問題,這不僅會(huì)導(dǎo)致計(jì)算機(jī)運(yùn)...

關(guān)鍵字: CPU 系統(tǒng)

在現(xiàn)代科技和工業(yè)領(lǐng)域,電源的穩(wěn)定性和可靠性是確保設(shè)備正常運(yùn)行和系統(tǒng)穩(wěn)定工作的基石。然而,電源系統(tǒng)的復(fù)雜性使得其可靠性預(yù)測成為一個(gè)極具挑戰(zhàn)性的任務(wù)。本文將從多個(gè)角度探討電源可靠性如何實(shí)現(xiàn)更精準(zhǔn)的預(yù)測,以期為相關(guān)領(lǐng)域的研究和...

關(guān)鍵字: 電源 可靠性 系統(tǒng)

hmi是Human Machine Interface 的縮寫,"人機(jī)接口",也叫人機(jī)界面。人機(jī)界面(又稱用戶界面或使用者界面)是系統(tǒng)和用戶之間進(jìn)行交互和信息交換的媒介, 它實(shí)現(xiàn)信息的內(nèi)部形式與人類可以接受形式之間的轉(zhuǎn)換...

關(guān)鍵字: HMI 人機(jī)界面 系統(tǒng)

在復(fù)位電路中,電容的作用是給系統(tǒng)提供恒定的電源電壓,從而保證開機(jī)時(shí)系統(tǒng)能夠正確地執(zhí)行初始化和自檢過程。因此,選擇合適大小的電容對于系統(tǒng)的穩(wěn)定性和性能至關(guān)重要。

關(guān)鍵字: 復(fù)位電路 電容 系統(tǒng)

工業(yè)自動(dòng)化系統(tǒng)設(shè)計(jì)是一項(xiàng)涉及多個(gè)領(lǐng)域和技術(shù)的綜合性任務(wù)。它旨在通過自動(dòng)化設(shè)備和系統(tǒng)的集成,提高生產(chǎn)效率、降低能耗、確保產(chǎn)品質(zhì)量和增強(qiáng)企業(yè)競爭力。本文將詳細(xì)探討工業(yè)自動(dòng)化系統(tǒng)設(shè)計(jì)的原則、方法和實(shí)踐,以期為相關(guān)從業(yè)人員提供有...

關(guān)鍵字: 工業(yè)自動(dòng)化 設(shè)備 系統(tǒng)

MCS-51單片機(jī)是美國INTE公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到...

關(guān)鍵字: 單片機(jī) 存儲(chǔ)器 系統(tǒng)

DSP應(yīng)用系統(tǒng)的運(yùn)算量是確定選用處理能力為多大的DSP芯片的基礎(chǔ)。運(yùn)算量小則可以選用處理能力不是很強(qiáng)的DSP芯片,從而可以降低系統(tǒng)成本。相反,運(yùn)算量大的DSP系統(tǒng)則必須選用處理能力強(qiáng)的DSP芯片,如果DSP芯片的處理能力...

關(guān)鍵字: DSP 芯片 系統(tǒng)

三家全球領(lǐng)先公司緊密協(xié)作,以滿足基于臺(tái)積公司先進(jìn)技術(shù)的設(shè)計(jì)在芯片、封裝和系統(tǒng)等方面的挑戰(zhàn)

關(guān)鍵字: 芯片 封裝 系統(tǒng)

因?yàn)楦鞣N新式微處理器的呈現(xiàn)和運(yùn)用的不斷深化,嵌入式體系在后PC年代得到了空前的開展。跟著時(shí)刻的推移和技能的前進(jìn),在工業(yè)操控和新式的手持式運(yùn)用等范疇,用戶體會(huì)成為產(chǎn)品成功的關(guān)鍵要素之一,越來越多的產(chǎn)品需求杰出的用戶界面、互...

關(guān)鍵字: 嵌入式 系統(tǒng) 處理器
關(guān)閉