基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì)說(shuō)明_第1頁(yè)
基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì)說(shuō)明_第2頁(yè)
基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì)說(shuō)明_第3頁(yè)
基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì)說(shuō)明_第4頁(yè)
基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 . . . 基于CPLD的系統(tǒng)中I2C總線的設(shè)計(jì) 文章 昆 邱 揚(yáng) 浩文章類型:設(shè)計(jì)應(yīng)用 文章加入時(shí)間:2004年3月12日1:28文章出處:電子技術(shù)應(yīng)用   摘要:在介紹總線協(xié)議的基礎(chǔ)上,討論了基于的系統(tǒng)中總線的設(shè)計(jì)技術(shù),并結(jié)合工程實(shí)例設(shè)計(jì)了總線核,給出了部分源代碼和仿真結(jié)果。   關(guān)鍵詞:總線 核 總線是公司推出的新一代串行總線,其應(yīng)用日漸廣泛。目前許多單片機(jī)都帶有總線接口,能方便地實(shí)現(xiàn)總線設(shè)計(jì);對(duì)沒(méi)有總線的微控制器(),可以采用兩條口線進(jìn)行模擬。在以單片機(jī)為的系統(tǒng)中很容易實(shí)現(xiàn)總線的模擬擴(kuò)展,有現(xiàn)成的通用軟件包可以使用。對(duì)有些基

2、于的系統(tǒng),要與帶有總線接口的外圍器件連接,實(shí)現(xiàn)起來(lái)相對(duì)復(fù)雜一些。為實(shí)現(xiàn)系統(tǒng)中的總線接口,可以另外引入單片機(jī),也可以采用或者器件(公司推出的專用總線擴(kuò)展器)進(jìn)行擴(kuò)展,但這樣會(huì)增加系統(tǒng)成本,使系統(tǒng)冗余復(fù)雜。像、等一些大公司有專用的基于器件的總線核,但這些核的通用性不強(qiáng),需要的外圍控制信號(hào)較多,占用系統(tǒng)很大的資源,因此直接采用這種核不可取。鑒于此,依照總線協(xié)議的時(shí)序要求,在基于的系統(tǒng)中開發(fā)了自己的總線核。對(duì)于一些帶有總線接口的外圍器件較少、對(duì)總線功能要求較簡(jiǎn)單的系統(tǒng),自主開發(fā)核顯得既經(jīng)濟(jì)又方便。 總線的協(xié)議總線僅僅依靠?jī)筛B線就實(shí)現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送:一根為串行數(shù)據(jù)線(),一根為串行時(shí)鐘線(

3、)。該總線協(xié)議有嚴(yán)格的時(shí)序要求。總線工作時(shí),由時(shí)鐘控制線傳送時(shí)鐘脈沖,由串行數(shù)據(jù)線傳送數(shù)據(jù)??偩€傳送的每幀數(shù)據(jù)均為一個(gè)字節(jié)( ),但啟動(dòng)總線后,傳送的字節(jié)個(gè)數(shù)沒(méi)有限制,只要求每傳送一個(gè)字節(jié)后,對(duì)方回應(yīng)一個(gè)應(yīng)答位( )。發(fā)送數(shù)據(jù)時(shí)首先發(fā)送數(shù)據(jù)的最高位()??偩€協(xié)議規(guī)定,啟動(dòng)總線后第一個(gè)字節(jié)的高位是從器件的尋址地址,第位為方向位(“”表示主器件對(duì)從器件的寫操作;“”表示主器件對(duì)從器件的讀操作),其余的字節(jié)為操作的數(shù)據(jù)??偩€每次傳送開始時(shí)有起始信號(hào),結(jié)束時(shí)有停止信號(hào)。在總線傳送完一個(gè)或幾個(gè)字節(jié)后,可以使線的電平變低,從而使傳送暫停。圖列出了總線上典型信號(hào)的時(shí)序,圖表示總線上一次完整的數(shù)據(jù)傳送過(guò)程。依

4、據(jù)總線的傳輸協(xié)議,總線工作時(shí)的具體時(shí)序如下:起始信號(hào)():在時(shí)鐘為高電平期間,數(shù)據(jù)線出現(xiàn)由高電平向低電平的變化,用于啟動(dòng)總線,準(zhǔn)備開始傳送數(shù)據(jù);停止信號(hào)():在時(shí)鐘為高電平期間,數(shù)據(jù)線出現(xiàn)由低電平向高電平的變化,用于停止總線上的數(shù)據(jù)傳送;應(yīng)答信號(hào)():總線的第個(gè)脈沖對(duì)應(yīng)應(yīng)答位,若線上顯示低電平則為總線“應(yīng)答”(),若線上顯示高電平則為“非應(yīng)答”();數(shù)據(jù)位傳送:總線起始信號(hào)或應(yīng)答信號(hào)之后的第個(gè)時(shí)鐘脈沖對(duì)應(yīng)一個(gè)字節(jié)的位數(shù)據(jù)傳送。在脈沖高電平期間,數(shù)據(jù)串行傳送;在脈沖低電平期間,數(shù)據(jù)準(zhǔn)備,允許總線上數(shù)據(jù)電平變化。 應(yīng)用實(shí)例 實(shí)例模型介紹現(xiàn)舉某應(yīng)用實(shí)例,要求對(duì)顯示器的視頻信號(hào)進(jìn)行采集、處理和再顯示,

5、整個(gè)系統(tǒng)采用器件進(jìn)行控制。信號(hào)采集采用公司的專用視頻采集芯片,該芯片在使用前需要依據(jù)實(shí)際的功能指標(biāo)進(jìn)行初始化。初始化過(guò)程依靠的和兩引腳進(jìn)行。在系統(tǒng)中用器件,公司的,實(shí)現(xiàn)初始化:按照總線協(xié)議向的個(gè)部寄存器()寫入組固定的位數(shù)據(jù);第寄存器為只讀型同步檢測(cè)寄存器,僅用于檢測(cè)幾個(gè)關(guān)鍵的數(shù)據(jù)設(shè)置。可見該總線模型如下:?jiǎn)沃鞑僮?,只?shí)現(xiàn)簡(jiǎn)單的寫和讀操作(亦可只有寫操作,只是硬件調(diào)試的時(shí)候會(huì)麻煩些),寫地址連續(xù),沒(méi)有競(jìng)爭(zhēng)和仲裁,是很簡(jiǎn)單的總線系統(tǒng)。由此設(shè)計(jì)了如圖所示的核。其中,為復(fù)位信號(hào),為系統(tǒng)時(shí)鐘。為了軟件仿真方便,把雙向數(shù)據(jù)線用分離的兩條線模擬:為數(shù)據(jù)輸出,為的應(yīng)答信號(hào)。軟件仿真成功后,只要把設(shè)置為雙向,

6、稍微修改一下程序就可以向器件下載,進(jìn)行實(shí)際應(yīng)用。對(duì)部地址連續(xù)的寄存器進(jìn)行初始化,總線上傳輸?shù)臅r(shí)序信號(hào)依次為:開始信號(hào)();從器件地址和寫操作位();部寄存器基地址( );寫入基地址的數(shù)據(jù)();寫入下一地址( )的數(shù)據(jù)();寫入地址( )的數(shù)據(jù)();寫入地址( )的數(shù)據(jù)();停止信號(hào)()。針對(duì),如果電路中的引腳接電源,則“”; “”,是依據(jù)實(shí)際需要寫入的初始化數(shù)據(jù)。 核程序的編寫整個(gè)程序用語(yǔ)言編制,輸出時(shí)鐘的設(shè)計(jì)是基于輸入時(shí)鐘的分頻的。程序由三個(gè)狀態(tài)組成:開始()、轉(zhuǎn)換()和應(yīng)答()。狀態(tài)定義如下: 下面給出部分進(jìn)程的源代碼以供參考。開始信號(hào)的產(chǎn)生 “” 比較寄存器的開始值設(shè)置(由用戶決定) 開

7、始條件“” 為時(shí)鐘脈沖計(jì)數(shù) “” 產(chǎn)生的下降沿 “” 歸,保證只產(chǎn)生一次開始信號(hào) “” 等所有的初始化數(shù)據(jù)傳輸完畢后即產(chǎn)生停止信號(hào),過(guò)程與上面相類似,在此省略。 數(shù)據(jù)轉(zhuǎn)換過(guò)程數(shù)據(jù)轉(zhuǎn)換過(guò)程采用移位傳輸,傳輸位之后即進(jìn)入應(yīng)答狀態(tài)。 “” 為脈沖計(jì)數(shù),由實(shí)際的時(shí)鐘頻率決定的值“” 為數(shù)據(jù)移位個(gè)數(shù)計(jì)數(shù)為移位寄存器 “” 為應(yīng)答標(biāo)志位 圖4 數(shù)據(jù)傳輸仿真波形 圖5 SDA非應(yīng)答時(shí)的仿真波形    數(shù)據(jù)輸入一般情況下,總線傳輸?shù)臄?shù)據(jù)要由外部或其它專門的數(shù)據(jù)存儲(chǔ)區(qū)來(lái)存儲(chǔ),但在數(shù)據(jù)相對(duì)固定且數(shù)據(jù)量不是很大的情況下,可以將初始化的數(shù)據(jù)寫在程序中,這樣可減少頻繁的數(shù)據(jù)交換,簡(jiǎn)化操作。

8、的初始化數(shù)據(jù)就屬于這種情況,可以通過(guò)檢測(cè)應(yīng)答信號(hào)來(lái)改變輸入的值。程序如下: 數(shù)據(jù)輸入 為應(yīng)答計(jì)數(shù),每應(yīng)答一次,輸入改變一次 “” “” “” “” “” “” “” “” “” “” “” 仿真結(jié)果把自主開發(fā)的核置于 開發(fā)環(huán)境下,選用器件,經(jīng)過(guò)編譯、調(diào)試與仿真,證明該程序符合設(shè)計(jì)要求。圖是模擬產(chǎn)生開始信號(hào)并傳輸兩組二進(jìn)制數(shù)據(jù)“”和“”(十進(jìn)制表示為和)的仿真波形。圖是傳輸數(shù)據(jù)“”后沒(méi)有應(yīng)答時(shí)的仿真結(jié)果,此時(shí)總線處于暫停狀態(tài)。仿真完成后,通過(guò)編程電纜將文件下載到實(shí)際電路的中,然后對(duì)進(jìn)行初始化,結(jié)果工作正常,這進(jìn)一步驗(yàn)證了采用該自主開發(fā)的核完全可滿足總線的時(shí)序要求,能實(shí)現(xiàn)總線的功能。 圖4 數(shù)據(jù)傳輸仿真波形 圖5 SDA非應(yīng)答時(shí)的仿真波形    數(shù)據(jù)輸入一般情況下,總線傳輸?shù)臄?shù)據(jù)要由外部或其它專門的數(shù)據(jù)存儲(chǔ)區(qū)來(lái)存儲(chǔ),但在數(shù)據(jù)相對(duì)固定且數(shù)據(jù)量不是很大的情況下,可以將初始化的數(shù)據(jù)寫在程序中,這樣可減少頻繁的數(shù)據(jù)交換,簡(jiǎn)化操作。的初始化數(shù)據(jù)就屬于這種情況,可以通過(guò)檢測(cè)應(yīng)答信號(hào)來(lái)改變輸入的值。程序如下: 數(shù)據(jù)輸入 為應(yīng)答計(jì)數(shù),每應(yīng)答一次,輸入改變一次 “” “” “” “” “” “” “” “” “” “” “” 仿真結(jié)果把自主開發(fā)的核置于 開發(fā)環(huán)境下,選用器件,經(jīng)過(guò)編譯、調(diào)試與仿真,證明該程序符合設(shè)計(jì)要求。圖是模擬產(chǎn)生開始信號(hào)并傳輸兩組二

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論