基于AT89S52的遠(yuǎn)程電源監(jiān)控系統(tǒng)設(shè)計(jì)
3 嵌入式設(shè)備網(wǎng)絡(luò)互連設(shè)計(jì)方案
3.1 電路原理設(shè)計(jì)
c8051f020是美國(guó)cygnal公司推出的一種混合信號(hào)soc型8位單片機(jī),它是一種完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與8051兼容的微控制器內(nèi)核,與mcs-51指令集完全兼容。內(nèi)核采用流水線結(jié)構(gòu),機(jī)器周期由標(biāo)準(zhǔn)的12個(gè)系統(tǒng)時(shí)鐘周期降為1個(gè)系統(tǒng)時(shí)鐘周期,70%指令的執(zhí)行時(shí)間為1個(gè)或2個(gè)系統(tǒng)時(shí)鐘周期,處理能力大大提高,峰值性能可達(dá)25mips。
同時(shí),除具有標(biāo)準(zhǔn)8051的數(shù)字外設(shè)部件外,c8051- f020片內(nèi)還集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采集、控制系統(tǒng)所需要的幾乎所有模擬、數(shù)字外設(shè)及其他功能部件。這些外設(shè)或功能部件包括:用于多種模擬信號(hào)的模擬多路選擇器、真正12位轉(zhuǎn)換精度的adc,還有能滿足特殊功能所需的smbus(i2c兼容)、uart、spi、多個(gè)多功能計(jì)數(shù)器/定時(shí)器、以及看門(mén)狗定時(shí)器(wdt)和電源監(jiān)視器等數(shù)字外設(shè)。
c8051f020具有100腳的tqfp封裝,功耗低,供電電壓為2.7~3.3v,全部i/o、rst、jtag引腳均耐5v電壓。其mcu具有p0~p7共64個(gè)通用i/o端口,每個(gè)端口引腳都可以被配置為推挽輸出或漏級(jí)開(kāi)路輸出。對(duì)于rtl8019as,由于其工作電壓是5v,而c8051f020的工作電壓是3.3v,所以要c8051f020的輸出能更好地驅(qū)動(dòng)5v輸入的oled,需要對(duì)系統(tǒng)進(jìn)行額外配置。除了將對(duì)應(yīng)端口的輸出方式設(shè)置為“漏極開(kāi)路”外,還應(yīng)在電路上將每個(gè)端口通過(guò)一個(gè)上拉電阻接到5v電源,這樣可以保證c8051f020的邏輯“1”輸出能夠被提升到5v。
單片機(jī)采用c8051f020芯片,以查詢工作方式不斷讀取rtl8019as狀態(tài)寄存器。以遠(yuǎn)程dma方式發(fā)送或讀取rtl8019as的數(shù)據(jù)。詳見(jiàn)圖3。
由于網(wǎng)絡(luò)控制器具有 ethernet(ieee802.3)協(xié)議處理功能,系統(tǒng)便可直接rj45連接到以太網(wǎng)(再通過(guò)以太網(wǎng)接入 internet)。本文所設(shè)計(jì)的系統(tǒng)中選用的rj45連接器為lf1s022,它已經(jīng)具有電平轉(zhuǎn)換功能,簡(jiǎn)化了 pcb設(shè)計(jì)。值得注意的是,設(shè)計(jì)pcb時(shí),rj45連接器不能與cpu和網(wǎng)絡(luò)芯片相距太遠(yuǎn),以免對(duì)數(shù)據(jù)傳輸造成影響。
rtl8019as的tpin+(59腳), tpin-(58腳)腳是tp 的一對(duì)輸入腳,能以10mbits/s 的速率從雙絞線接收差分曼徹斯特編碼的數(shù)據(jù)。tpout+(45腳)、tpout-(46腳)是一對(duì)曼徹斯特編碼的差分tp輸出信號(hào)。為了防止雙絞線超載,該輸出信號(hào)會(huì)被提前中斷,這樣可以減少擁塞。連接時(shí),這四個(gè)管腳分別接到 lf1s022的7、6、5、4腳。連接器的其他管腳都通過(guò)一個(gè)電容與地連接。最后,還必須在50、51腳之間接入一個(gè)20mhz的晶體振蕩器。
圖3中擴(kuò)展的rj45口接入互聯(lián)網(wǎng),rtl8019as通過(guò)本地dma方式將接收到的數(shù)據(jù)送到片內(nèi)sram,或者從片內(nèi)sram讀取數(shù)據(jù)從rj45口發(fā)送出去。
網(wǎng)卡的復(fù)位信號(hào)rstdrv由單片機(jī)的p5.2產(chǎn)生,rstdrv為高電平有效,至少需要800ns的寬度。由p5.2引腳產(chǎn)生一個(gè)1μs以上的高電平就可以使rtl- 8019as芯片復(fù)位。
rstdrv從高電平到低電平之后要等多久,單片機(jī)才可以對(duì)網(wǎng)卡進(jìn)行操作?復(fù)位的過(guò)程將執(zhí)行一些操作,比如將內(nèi)部寄存器初始化等。這些至少需要2ms的時(shí)間。為確保完全復(fù)位,應(yīng)該等待更久的時(shí)間之后才對(duì)網(wǎng)卡操作,比如100ms之后才對(duì)它操作。
對(duì)rstdrv可以接單片機(jī)的一個(gè)i/o口線進(jìn)行網(wǎng)卡的復(fù)位,也可以直接將rstdrv跟單片機(jī)的reset引腳并聯(lián),單片機(jī)復(fù)位的時(shí)候,網(wǎng)卡也復(fù)位,以減少一個(gè)單片機(jī)的引腳使用。
3.2 網(wǎng)卡的初始化
評(píng)論