集成了网络连接的低成本控制器
扫描二维码
随时随地手机看文章
1 引言
按照当前的技术水准,如果设计一个不与网络或互联网连接的控制、调节或数据通信系统显然是落伍了。文中将介绍如何采用Maxim/Dallas创新的八位网络微控制器DS80C400实现低成本的具有WEB连接的工业应用。
网络的存在大大简化了系统服务和电缆连接,通过以太网也能够实现越来越多的功能。如今越来越多的微控制器被部署在以太网上,例如:无线接入点、视频监控、网络打印、路由器等。在这些应用中,为了减轻软件处理负荷、降低成本,需要核心芯片,也就是集成有以太网接口和TCP/IP协议栈的微控制器,Maxim/Dallas推出的DS80C400则具备以上特点。
DS80C400非常适合上述应用,它可以连续运行,并只消耗极少的能量。该器件可以轻易实现VoIP、Internet电话等功能,还可以通过Internet或家庭网络控制空调和取暖设备。有了它,就没有必要在系统的每一单元都安装昂贵的电路,系统中的任何PC都可以通过DS80C400查看相关数据和发送控制操作。各个单元只需与现有网络连接,这些网络可以是家庭或者公司内部网络,也可以是Internet,而且其服务设置和安装过程可以由网络上的任何PC实现。
2 DS80C400功能特点
这款新型控制器为系统监控提供了更多的途径。用户可以采集多个地点的温度并实时显示温度数值,也可以用彩色图表显示不同的温度值和连续工作情况。研发工程师还可以尝试不同的监视和控制方式,而不需要在各控制点增加转换器和昂贵的伺服机构。由于DS80C400可以通过以太网接入In-ternet,这样就使操作者的实际位置变得无关紧要,可以轻松实现远端或远距离的系统监控。
图1
2.1 低功耗
DS80C400能够以最少的外围器件和最低的功耗实现简单有效的功能。参考设计(DSTINIM400和DSTINIS400)中包含了以太网接口和2个串行接口,此外,板上有1M字节RAM和1M字节的Flash存储器。该控制器工作在29.4912MHz时钟下,运行TI-NI-OS和Webserver操作系统时的总功耗为0.5W。图1所示为DS80C400的内部结构框图。
DS80C400具有功率管理模式?PMM?,可以对内部时钟进行256分频。在PMM模式下,微处理器的速度非常低,仍可以继续执行程序,但电源电流极低,甚至低于空闲模式下的电源电流。当有中断指令产生或其中一个串口接收到数据时,DS80C400会自动恢复标准工作模式。PMM模式下损耗较大的定时器时钟是1024分频,而不是4分频。低功耗模式下,内部8051核工作于1.8V,而I/O驱动部分工作在3.3V(可以承受5V)。
2.2 高指令执行速度
在高达75MHz时钟时,DS80C400的指令执行速度可以达到18.75MIPS,足以支持以太网接收未经压缩的音频数据流,然后经过D/A转换再发送出去。DS80C400也适合分辨率和刷新速率较低的安全监控系统。但是,DS80C400不能用于高速、连续吞吐量的场合,例如文件服务器、网络DVD刻录机等。此外,DS80C400内部的运算加速器可以执行16位和32位乘法、除法、移位和归一化处理。
2.3 接口和外围设备
DS80C400提供多种接口,其中包括CAN2.0B控制器接口、三个1-Wire接口、全双工硬件串行接口、八个双向8位端口(共计64个数字I/O口)。DS80C400有16M字节的可访问地址空间、22条地址线和4个内部编码片选使能端,见图2所示。它内部集成有10/100M以太网媒体存取控制器MAC,可以支持半双工和全双工Internet协议IPv4和IPv6。为了减轻发送和接收时的CPU负荷,DS80C400还内含8K字节带缓冲的数据包存储器。
图2
DS80C400内嵌64K字节ROM,ROM中的固件利用DHCP,配合TFTP,通过以太网连接实现网络装载。ROM固件支持UDP、TCP、DHCP、ICMP和IGMP,因此实现了完全可以访问的TCP/IP协议栈。另外,用户也可以从已在IEEE注册的DS2502-E48(Maxim/Dallas产品,一种提供48位节点地址的芯片)中获得一个MAC地址。
2.4 Java
Maxim/Dallas免费提供基于8051核的Java操作系统以配合DS80C400的使用。设计者可以从网站:ftp?//ftp.dalsemi.com/pub/tini/下载Java操作系统TINI-OS和一些应用例程。TINI-OS提供一个类似UNIX的Shell:SLUSH-shell,其中包含了FTP和Tel-net等标准组件。TINI网站也提供了一些简单范例,例如用于Web服务器的Java源程序,该程序利用DS1920(数字温度传感器)来测量温度,并通过HTML页面显示温度值。
3 典型应用
在DS80C400上安装TINI-OS的WEB服务器需要下述条件:
●带DS80C400微控制器的电路板,推荐使用1M字节Flash存储器,1M字节SRAM。也可以从以下网址下载一个示例:
ftp://ftp.dalsemi.com/pub/tini/reference de-signs/TINIm400/TINIm400 C.PDF
●最新版本的TINI-OS操作系统,可以从下面网址得到:
ftp://ftp.dalsemi.com/pub/tini/tini1 13.tgz
●编译J2SDK1.4.x、Linux/Unix或Windows版本,可参考:
http://java.sun.com/j2se/1.4.2/download.html
●用集成了串行装载器的DS80C400、Java-Communications-API,Linux/Unix或Windows版本传送软件,参考:
http://java.sun.com/products/javacomm/down-loads/index.html
4 实现WEB访问的步骤
首先需要在PC上安装JAVA-COMM API、Java2 SDK及其所有附件。JAVA-Communication-API的安装可参考文件:PlatformSpecific.html。然后解压缩已下载的Tini-Paket(Tini操作系统软件包)tini1-13.tgz文件。Windows用户应该把这个文件解压缩到根目录下,并且使用尽可能简短的目录名,以便于手工输入路径名。这里假设解压缩到C?\TNIOS。现在可以运行Tini JavaKit,与DS80C400的装载器通信如下?
java -classpath
c:\tinios\bin\tini.jar; c:\j2sdk1.4.2 05\lib\comm.jar JavaKit
完成上述操作后,JavaKit就可以和DS80C400进行通信了,在此之前,还必须用串口电缆连接DS80C400的串口0(引脚P3 B0和P3 B1)和PC。为了能使用JavaKit的DTR-Reset复位,应该用另外一个串行收发器将PC串口的DTR引脚接到DS80C400电路板的手动复位电路上。
图3
用户必须确保DS80C400的第96引脚P1_B7在复位时没有接地。否则,复位后DS80C400将自动从地址40000h开始运行程序。同样,DS80C400的第32脚也不能拉低到地电位,否则在接收到来自TFTP服务器的复位后,ROM将启动NetBoot过程。复位后DS80C400应该返回以下信息:
DS80C400 silicon software.
Welcome to the TINI DS80C400 car boat Loader 1.0.1
用户可以用Java-Kit通过File->Load-File?C?\tinios\bin\tini 400.tbin操作将TINI-OS文件拷贝到DS80C400线路板的Flash中, 通过File->Load-File? C?\tinios\bin\slush 400.tbin将slush-shell拷贝到Flash中。在重新启动之前,还需清除HEAP。随后,将DS80C400的第96脚(P1 B7)拉低到地以产生一次复位。复位之后将显示以下信息:
[=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.
以上显示表明操作系统已经运行于DS80C400。用户可以凭用户名“root”和密码“tini”登录。如果网络不支持DHCP动态主机配置协议,还必须使用一个静态IP地址。配置结果将保存在SRAM的HEAP区域。如果这个SRAM采用备用电池供电,那么即使去掉了主电源,网络参数和系统数据仍然可以完好无缺。现在,用户不再需要Ja-va-Kit和串口连接,就可以使用FTP服务将自己的软件拷贝到系统文件里。进一步的设置可以用Telnet完成。
从PC上可以看到一个简单的Java WEB服务器:
c:\tinios\examples\TINIWebserver。
用批处理文件buildWebServer.bat可以方便地编译这个程序。用户可以把从FTP得到的TINI-WebServer.tini拷贝到DS80C400文件系统的桌面:/bin下,然后通过Telnet用命令/bin/TINIWebServ-er.tini运行它。也可以把这个命令写到启动文件里(/etc/.startup,一个类似PC中的autoexec.bat文件),这样在系统启动时,就可保证启动WEB服务器。可通过Internet Explorer来运行DS80C400里的Web服务器Webserver,在地址栏里输入地址http?//192.168.1. 50后的显示结果如图3所示。
在这个参考设计里,监控的温度来自接在第99脚(OW)的DS1920温度传感器,时钟信息来自带I2C总线接口的DS1672实时时钟芯片。