新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PSD813F1及其接口編程技術(shù)

PSD813F1及其接口編程技術(shù)

作者: 時(shí)間:2012-03-17 來(lái)源:網(wǎng)絡(luò) 收藏

3.1 硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖2所示,核心器件為80C196KC和PSD813F1,圖中簡(jiǎn)化了復(fù)位等電路。

80C196KC80c196kc為INTEL公司16位單片機(jī)。該單片機(jī)具有16位多路復(fù)用的地址/數(shù)據(jù)總線,工作于12MHz的時(shí)鐘頻率,系統(tǒng)主體程序采用C96語(yǔ)言設(shè)計(jì),程序空間大小占用32K,系統(tǒng)設(shè)計(jì)要求采用非易失性存儲(chǔ)器進(jìn)行數(shù)據(jù)存儲(chǔ),另外需外擴(kuò)SRAM用于數(shù)據(jù)緩存。程序存儲(chǔ)、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)緩存分別由PSD813F1的FLASH MEM、EEPROM和SRAM完成
。 A/D轉(zhuǎn)換采用80C196KC自身的10位8路逐次比較型A/D,鍵盤(pán)/顯示接口芯片采用8279,與PC機(jī)通信采用MAXIM公司的MAX232用于RS-232通信,由MAX874經(jīng)精密調(diào)整后給80C196KC提供4.096V電壓。8279的片選和地址譯碼由PSD813F1的FGPLD完成。
3.2 軟件設(shè)計(jì)
3.2.1 PSD813F1配置文件設(shè)計(jì)
該電路在PSDSOFT(WSI公司提供的下載軟件)中的配置為:
·多路復(fù)用工作方式
·ALE高電平有效
·讀/寫(xiě)控制選擇RD/WR
PSD813F1以ABEL語(yǔ)言為硬件描述語(yǔ)言,在本電路中的設(shè)計(jì)方法為:
(1)內(nèi)部譯碼實(shí)現(xiàn):
fs0=!a15*!a14*!a13*!a12; /*fs為設(shè)計(jì)中FLASH MEM 的保留名 fs0地址空間為0000h~0fffh*/
fs1=!a15*!a14*!a13*a12; /*fs1地址空間為1000h -->1fffh*/
fs2=!a15*!a14*a13*!a12; /*fs2地址空間為2000h -->2fffh*/
fs3=!a15*!a14*a13*a12; /*fs3地址空間為3000h -->3fffh*/
ees0=!a15*a14*!a13*a12; /*ees為EEPROM的保留名, ees0地址空間為4000h-->4fffh*/
ees1=!a15*a14*a13*!a12; /*ees1地址空間為5000h -->5fffh*/
ees2=!a15*a14*a13*!a12; /*ees2地址空間為6000h -->6fffh*/
ees3=!a15*a14*a13*a12;/*ees3地址空間為7000h -->7fffh*/
rs0=a15*!a14*!a13*!a12*!a11*!a10; /*rs為SRAM 的保留名,地址空間為8000-83fffh*/
csiop=a15*!a14*!a13*a12;/*csiop基地址為9000h*/
2) 外部譯碼的實(shí)現(xiàn):
將PB的最低位端口設(shè)計(jì)為片選信號(hào)的設(shè)計(jì)方法為
cs1 pin7; /*PB的0端口*/
cs1=!a15 *a14*/a13*a12); /*8279的地址空間為 d000h-->dfffh*/
3.2.2 程序設(shè)計(jì)
程序設(shè)計(jì)語(yǔ)言為C96,其實(shí)現(xiàn)如下: 對(duì)SRAM的操作為:
static const unsigned char *pointer_sram=0x8000; /*設(shè)置SRAM數(shù)據(jù)單元的基址指針*/
pointer_sram=0xaa; /*將數(shù)據(jù)寫(xiě)入基址單元*/
pointer_sram[1]=0xbb; /*將數(shù)據(jù)寫(xiě)入下一地址單元*/
……
對(duì)EEPROM的操作為:
static const unsigned char *pointer_ee=0x4000; /*設(shè)置EEPROM空間的基址指針*/
pointer_ee=0xaa;
…… /*延時(shí)等待,對(duì)EEPROM的單元寫(xiě)入數(shù) 據(jù)時(shí)必須增添一定的時(shí)間延時(shí)*/
pointer_ee[i]=0xbb; /*i為地址增量,即相對(duì)于基地 址的偏移量*/
……
端口A、B的地址及各控制寄存器的地址由CSIOP的基地址加偏移地址來(lái)決定,本設(shè)計(jì)中PA.0用于為8279的A0提供地址信號(hào)。如不采用PSD813F1,則需在80C196KC和8279之間接74373用于地址鎖存輸出,采用PSD813F1則只需配置端口A的PA.0工作于地址鎖存工作方式,配置由A口的控制寄存器(占據(jù)一字節(jié)空間)決定,實(shí)現(xiàn)方法如下:
static const unsigned char *csiop=0x9000;
csiop[2]=0xfe; /*端口A的控制寄存器相對(duì)于 CSIOP基地址的偏移地址為02H;此時(shí)PA.0 在控制寄存器中的相應(yīng)位為0,因此PA.0 工作于地址鎖存輸出方式,其他高7位相 應(yīng)位為1,因此工作于MCU I/O方式*/ 對(duì)8279的初始化操作為:
static const unsigned char *pointer_8279=0xd000h; /*基址為數(shù)據(jù)口地址*/
pointer_8279[1]=0xd1;/*對(duì)命令端口寫(xiě)入清除命令*/
do{}
whilepointer_8279[1]‖0x7f==0x7f); /*等待清除完成*/
pointer 8279[1]=0x2a; /*送程序時(shí)鐘分頻常數(shù)*/pointer_
8279[1]=0x08; /*寫(xiě)鍵盤(pán)/顯示器工作方式命令*/
pointer_8279[1]=0x90; /*寫(xiě)顯示RAM命令*/
pointer_8279=0x10;/*向數(shù)據(jù)口送入顯示數(shù)據(jù)0x10*/
總之,本文通過(guò)設(shè)計(jì)該數(shù)據(jù)采集系統(tǒng),表明PSD813F1芯片集FLASH MEM、EERPOM、SRAM、PLD等于一體,可代替電路設(shè)計(jì)中的程序存儲(chǔ)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)緩存和譯碼等芯片,從而可使單片機(jī)系統(tǒng)大大簡(jiǎn)化,一個(gè)實(shí)用系統(tǒng)可簡(jiǎn)化為"兩片"系統(tǒng),而其JTAG技術(shù)更是為該芯片的使用增添了便捷的設(shè)計(jì)和使用手段。

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉