集成了網(wǎng)絡(luò )連接的低成本控制器
1 引言
按照當前的技術(shù)水準,如果設計一個(gè)不與網(wǎng)絡(luò )或互聯(lián)網(wǎng)連接的控制、調節或數據通信系統顯然是落伍了。文中將介紹如何采用Maxim/Dallas創(chuàng )新的八位網(wǎng)絡(luò )微控制器DS80C400實(shí)現低成本的具有WEB連接的工業(yè)應用。
網(wǎng)絡(luò )的存在大大簡(jiǎn)化了系統服務(wù)和電纜連接,通過(guò)以太網(wǎng)也能夠實(shí)現越來(lái)越多的功能。如今越來(lái)越多的微控制器被部署在以太網(wǎng)上,例如:無(wú)線(xiàn)接入點(diǎn)、視頻監控、網(wǎng)絡(luò )打印、路由器等。在這些應用中,為了減輕軟件處理負荷、降低成本,需要核心芯片,也就是集成有以太網(wǎng)接口和TCP/IP協(xié)議棧的微控制器,Maxim/Dallas推出的DS80C400則具備以上特點(diǎn)。
?。模樱福埃茫矗埃胺浅_m合上述應用,它可以連續運行,并只消耗極少的能量。該器件可以輕易實(shí)現VoIP、Internet電話(huà)等功能,還可以通過(guò)Internet或家庭網(wǎng)絡(luò )控制空調和取暖設備。有了它,就沒(méi)有必要在系統的每一單元都安裝昂貴的電路,系統中的任何PC都可以通過(guò)DS80C400查看相關(guān)數據和發(fā)送控制操作。各個(gè)單元只需與現有網(wǎng)絡(luò )連接,這些網(wǎng)絡(luò )可以是家庭或者公司內部網(wǎng)絡(luò ),也可以是Internet,而且其服務(wù)設置和安裝過(guò)程可以由網(wǎng)絡(luò )上的任何PC實(shí)現。
2 DS80C400功能特點(diǎn)
這款新型控制器為系統監控提供了更多的途徑。用戶(hù)可以采集多個(gè)地點(diǎn)的溫度并實(shí)時(shí)顯示溫度數值,也可以用彩色圖表顯示不同的溫度值和連續工作情況。研發(fā)工程師還可以嘗試不同的監視和控制方式,而不需要在各控制點(diǎn)增加轉換器和昂貴的伺服機構。由于DS80C400可以通過(guò)以太網(wǎng)接入In-ternet,這樣就使操作者的實(shí)際位置變得無(wú)關(guān)緊要,可以輕松實(shí)現遠端或遠距離的系統監控。
2.1 低功耗
?。模樱福埃茫矗埃澳軌蛞宰钌俚耐鈬骷妥畹偷墓膶?shí)現簡(jiǎn)單有效的功能。參考設計(DSTINIM400和DSTINIS400)中包含了以太網(wǎng)接口和2個(gè)串行接口,此外,板上有1M字節RAM和1M字節的Flash存儲器。該控制器工作在29.4912MHz時(shí)鐘下,運行TI-NI-OS和Webserver操作系統時(shí)的總功耗為0.5W。圖1所示為DS80C400的內部結構框圖。
?。模樱福埃茫矗埃熬哂泄β使芾砟J剑煟校停停?,可以對內部時(shí)鐘進(jìn)行256分頻。在PMM模式下,微處理器的速度非常低,仍可以繼續執行程序,但電源電流極低,甚至低于空閑模式下的電源電流。當有中斷指令產(chǎn)生或其中一個(gè)串口接收到數據時(shí),DS80C400會(huì )自動(dòng)恢復標準工作模式。PMM模式下?lián)p耗較大的定時(shí)器時(shí)鐘是1024分頻,而不是4分頻。低功耗模式下,內部8051核工作于1.8V,而I/O驅動(dòng)部分工作在3.3V(可以承受5V)。
2.2 高指令執行速度
在高達75MHz時(shí)鐘時(shí),DS80C400的指令執行速度可以達到18.75MIPS,足以支持以太網(wǎng)接收未經(jīng)壓縮的音頻數據流,然后經(jīng)過(guò)D/A轉換再發(fā)送出去。DS80C400也適合分辨率和刷新速率較低的安全監控系統。但是,DS80C400不能用于高速、連續吞吐量的場(chǎng)合,例如文件服務(wù)器、網(wǎng)絡(luò )DVD刻錄機等。此外,DS80C400內部的運算加速器可以執行16位和32位乘法、除法、移位和歸一化處理。
2.3 接口和外圍設備
?。模樱福埃茫矗埃疤峁┒喾N接口,其中包括CAN2.0B控制器接口、三個(gè)1-Wire接口、全雙工硬件串行接口、八個(gè)雙向8位端口(共計64個(gè)數字I/O口)。DS80C400有16M字節的可訪(fǎng)問(wèn)地址空間、22條地址線(xiàn)和4個(gè)內部編碼片選使能端,見(jiàn)圖2所示。它內部集成有10/100M以太網(wǎng)媒體存取控制器MAC,可以支持半雙工和全雙工Internet協(xié)議IPv4和IPv6。為了減輕發(fā)送和接收時(shí)的CPU負荷,DS80C400還內含8K字節帶緩沖的數據包存儲器。
?。模樱福埃茫矗埃皟惹叮叮矗俗止潱遥希?,ROM中的固件利用DHCP,配合TFTP,通過(guò)以太網(wǎng)連接實(shí)現網(wǎng)絡(luò )裝載。ROM固件支持UDP、TCP、DHCP、ICMP和IGMP,因此實(shí)現了完全可以訪(fǎng)問(wèn)的TCP/IP協(xié)議棧。另外,用戶(hù)也可以從已在IEEE注冊的DS2502-E48(Maxim/Dallas產(chǎn)品,一種提供48位節點(diǎn)地址的芯片)中獲得一個(gè)MAC地址。
2.4 Java
?。停幔椋恚模幔欤欤幔竺赓M提供基于8051核的Java操作系統以配合DS80C400的使用。設計者可以從網(wǎng)站:ftp//ftp.dalsemi.com/pub/tini/下載Java操作系統TINI-OS和一些應用例程。TINI-OS提供一個(gè)類(lèi)似UNIX的Shell:SLUSH-shell,其中包含了FTP和Tel-net等標準組件。TINI網(wǎng)站也提供了一些簡(jiǎn)單范例,例如用于Web服務(wù)器的Java源程序,該程序利用DS1920(數字溫度傳感器)來(lái)測量溫度,并通過(guò)HTML頁(yè)面顯示溫度值。
3 典型應用
在DS80C400上安裝TINI-OS的WEB服務(wù)器需要下述條件:
●帶DS80C400微控制器的電路板,推薦使用1M字節Flash存儲器,1M字節SRAM。也可以從以下網(wǎng)址下載一個(gè)示例:
?。妫簦?//ftp.dalsemi.com/pub/tini/reference de-signs/TINIm400/TINIm400 C.PDF
●最新版本的TINI-OS操作系統,可以從下面網(wǎng)址得到:
?。妫簦?//ftp.dalsemi.com/pub/tini/tini1 13.tgz
●編譯J2SDK1.4.x、Linux/Unix或Windows版本,可參考:
?。瑁簦簦?//java.sun.com/j2se/1.4.2/download.html
●用集成了串行裝載器的DS80C400、Java-Communications-API,Linux/Unix或Windows版本傳送軟件,參考:
?。瑁簦簦?//java.sun.com/products/javacomm/down-loads/index.html
4 實(shí)現WEB訪(fǎng)問(wèn)的步驟
首先需要在PC上安裝JAVA-COMM API、Java2 SDK及其所有附件。JAVA-Communication-API的安裝可參考文件:PlatformSpecific.html。然后解壓縮已下載的Tini-Paket(Tini操作系統軟件包)tini1-13.tgz文件。Windows用戶(hù)應該把這個(gè)文件解壓縮到根目錄下,并且使用盡可能簡(jiǎn)短的目錄名,以便于手工輸入路徑名。這里假設解壓縮到C\TNIOS?,F在可以運行Tini JavaKit,與DS80C400的裝載器通信如下
?。辏幔觯?-classpath
?。?\tinios\bin\tini.jar; c:\j2sdk1.4.2 05\lib\comm.jar JavaKit
完成上述操作后,JavaKit就可以和DS80C400進(jìn)行通信了,在此之前,還必須用串口電纜連接DS80C400的串口0(引腳P3 B0和P3 B1)和PC。為了能使用JavaKit的DTR-Reset復位,應該用另外一個(gè)串行收發(fā)器將PC串口的DTR引腳接到DS80C400電路板的手動(dòng)復位電路上。
用戶(hù)必須確保DS80C400的第96引腳P1_B7在復位時(shí)沒(méi)有接地。否則,復位后DS80C400將自動(dòng)從地址40000h開(kāi)始運行程序。同樣,DS80C400的第32腳也不能拉低到地電位,否則在接收到來(lái)自TFTP服務(wù)器的復位后,ROM將啟動(dòng)NetBoot過(guò)程。復位后DS80C400應該返回以下信息:
?。模樱福埃茫矗埃?silicon software.
?。祝澹欤悖铮恚?to the TINI DS80C400 car boat Loader 1.0.1
用戶(hù)可以用Java-Kit通過(guò)File->Load-FileC\tinios\bin\tini 400.tbin操作將TINI-OS文件拷貝到DS80C400線(xiàn)路板的Flash中, 通過(guò)File->Load-File C\tinios\bin\slush 400.tbin將slush-shell拷貝到Flash中。在重新啟動(dòng)之前,還需清除HEAP。隨后,將DS80C400的第96腳(P1 B7)拉低到地以產(chǎn)生一次復位。復位之后將顯示以下信息:
[=slush version 1.13 =,]
[System coming up.]
[Beginning initialization...]
[Need generating log file.][Info]
[Initializing shell commands...][Done]
[Checking system files...][Done]
[Initializing and parsings. startup...]
[Initializing network...]
[Starting DHCP Client...]
[waiting of for DHCP IP Lease...]
[DHCP IP of lease Successful.]
[Network configuration] [Done]
[Starting up Telnet servers...] [Done]
[Starting up FTP servers...] [Done]
[System init routines] [Done]
[slush initialization complete. 〗
Hit any key to log-in.
以上顯示表明操作系統已經(jīng)運行于DS80C400。用戶(hù)可以憑用戶(hù)名“root”和密碼“tini”登錄。如果網(wǎng)絡(luò )不支持DHCP動(dòng)態(tài)主機配置協(xié)議,還必須使用一個(gè)靜態(tài)IP地址。配置結果將保存在SRAM的HEAP區域。如果這個(gè)SRAM采用備用電池供電,那么即使去掉了主電源,網(wǎng)絡(luò )參數和系統數據仍然可以完好無(wú)缺?,F在,用戶(hù)不再需要Ja-va-Kit和串口連接,就可以使用FTP服務(wù)將自己的軟件拷貝到系統文件里。進(jìn)一步的設置可以用Telnet完成。
從PC上可以看到一個(gè)簡(jiǎn)單的Java WEB服務(wù)器:
?。?\tinios\examples\TINIWebserver。
用批處理文件buildWebServer.bat可以方便地編譯這個(gè)程序。用戶(hù)可以把從FTP得到的TINI-WebServer.tini拷貝到DS80C400文件系統的桌面:/bin下,然后通過(guò)Telnet用命令/bin/TINIWebServ-er.tini運行它。也可以把這個(gè)命令寫(xiě)到啟動(dòng)文件里(/etc/.startup,一個(gè)類(lèi)似PC中的autoexec.bat文件),這樣在系統啟動(dòng)時(shí),就可保證啟動(dòng)WEB服務(wù)器??赏ㄟ^(guò)Internet Explorer來(lái)運行DS80C400里的Web服務(wù)器Webserver,在地址欄里輸入地址http//192.168.1. 50后的顯示結果如圖3所示。
在這個(gè)參考設計里,監控的溫度來(lái)自接在第99腳(OW)的DS1920溫度傳感器,時(shí)鐘信息來(lái)自帶I2C總線(xiàn)接口的DS1672實(shí)時(shí)時(shí)鐘芯片。
評論