Microchip UNI/O總線技術(shù)及其應(yīng)用
(3)指令幀
指令幀用于傳送指令,由指令編碼和應(yīng)答序列組成。指令及其編碼往各種UNI/O從器件中定義。指令幀中的主應(yīng)答位應(yīng)根據(jù)指令是否要求傳輸其他數(shù)據(jù)字節(jié)確定。當(dāng)指令要求傳輸其他數(shù)據(jù)字節(jié)時(shí),該位為MAK,否則為NoMAK。從應(yīng)答位正常情況下為SAK。
1.3.3 UNI/O總線的命令序列
圖3所示的是用于執(zhí)行8位地址從器件指令的命令序列。其中字節(jié)幀的數(shù)量在總線規(guī)范中未進(jìn)行限制,只要前一個(gè)字節(jié)幀中的主應(yīng)答位為MAK就表示期望傳輸下一個(gè)字節(jié)幀。不過,字節(jié)幀的實(shí)際數(shù)量必須符合從器件指令的使用規(guī)范。在此前提下,可以由用戶程序根據(jù)其功能決定。用于執(zhí)行12位地址從器件指令的命令序列如圖4所示。
2 UNI/O從器件與單片機(jī)的接口設(shè)計(jì)
11XXX系列EEPROM是Microchip技術(shù)公司最新推出的、支持UNI/O總線協(xié)議的存儲(chǔ)器產(chǎn)品。下面就以該存儲(chǔ)器的使用為例,詳細(xì)介紹UNI/O總線系統(tǒng)的應(yīng)用設(shè)計(jì)方法。
2.1 硬件設(shè)計(jì)
圖5給出了11XXX系列EEPROM與單片機(jī)的接口原理圖。圖中,SCIO引腳上接一個(gè)20 kΩ的上拉電阻是為了確??偩€在上電/掉電序列期間以及未被驅(qū)動(dòng)時(shí)處于空閑狀態(tài)。VCC和VSS之間接入一個(gè)0.1μF的去耦電容是為了濾除VCC上的噪聲。
2.2 軟件設(shè)計(jì)
2.2.1 UNI/O存儲(chǔ)器11XXX的操作指令
11XXX系列存儲(chǔ)器共有9條操作指令,其指令編碼和功能描述如表1所列。
2.2.2 UNI/O存儲(chǔ)器11XXX的高級(jí)特性
11XXX器件除了具有EEPROM存儲(chǔ)器的基本特性、支持UNI/O總線協(xié)議外,還有以下高級(jí)特性。這些高級(jí)特性也是編寫接口程序的基本依據(jù)。
(1)內(nèi)置了一個(gè)狀態(tài)寄存器
狀態(tài)寄存器可以用來提供狀態(tài)信息和片內(nèi)數(shù)據(jù)的保護(hù)控制。其各位的功能定義如下:
①Bit0。為寫進(jìn)行位WIP,用于表明11XXX是否忙于寫操作。當(dāng)它為1時(shí),表明正在進(jìn)行寫操作;為0時(shí),表明沒有進(jìn)行寫操作。此位只讀。要編寫高效率的寫存儲(chǔ)陣列程序,可采用WIP查詢來及時(shí)檢測寫周期的結(jié)束。
②Bit1。為寫使能鎖存器位WEL,用于表明寫使能鎖存器的狀態(tài)。當(dāng)它為1時(shí),鎖存器允許存儲(chǔ)陣列無保護(hù)塊和狀態(tài)寄存器的寫入操作;當(dāng)置為0時(shí),禁止寫入操作。只能使用WREN指令來將此位置1,但會(huì)在上電或成功執(zhí)行了以下指令之一時(shí)復(fù)位。這些指令包括:WRDI、WRSR、WRITE、SETAL和ERAL。
③Bit2~Bit3。是塊保護(hù)位BP0和BP1,用于表明當(dāng)前哪些塊被寫保護(hù)。這些位可以由用戶通過WRSR指令進(jìn)行設(shè)置。這些位是非易失性的。表2給出了利用BP0和BP1對存儲(chǔ)器進(jìn)行分塊保護(hù)的方案。
評論