【Java精品源码栏目提醒】:网学会员为需要Java精品源码的朋友们搜集整理了网络微控制器的常见问题 - 电子电信相关资料,希望对各位网友有所帮助!
网络微控制器的常见问题FAQ摘要:本应用笔记列举了 Maxim 网络微控制器的一些常见问题FAQ。
针对应用DS80C400、DS80C410 或者 DS80C411 构建网络设备时所遇到的硬件和软件问题进行了解答,并解答了网络微控制器的一般性问题。
本文给出了可供参考的应用笔记、技术指南和软件资源。
1.一般性问题 1A.什么是网络微控制器?1B.DS80C400、DS80C410 和DS80C411 之间的差别是什么?1C.我如何运用 64kB 内部 SRAM?1D.TINIOS 是什么?1E.Slush 是什么?1F.网络微控制器是如何摘要:本应用笔记列举了 Maxim 网络微控制器的一些常见问题FAQ。
针对应用DS80C400、DS80C410 或者 DS80C411 构建网络设备时所遇到的硬件和软件问题进行了解答, 并解答了网络微控制器的一般性问题。
本文给出了可供参考的应用笔记、技术指南和软件资源。
1. 一般性问题 1A. 什么是网络微控制器?1B. DS80C400、DS80C410 和 DS80C411 之间的差别是什么?1C.我如何运用 64kB 内部 SRAM?1D. TINI OS 是什么?1E. Slush 是什么?1F. 网络微控制器是如何与因特网接口的?1G. 网络栈是什么?1H. 我以前没有用过网络协议。
我应该怎样开始设计?1I. 提供哪些开发工具?1J. 提供 DS80C400、DS80C410 和 DS80C411 在线仿真器ICE吗?1K. 我怎样获得 DS80C400 和 TINI OS 方面的技术支持? 2. 软件问题 2A. 串口/CAN/1-Wire 的以太网桥是什么?2B. 我怎样对 DS80C400 进行编程?我必须用
Java编程吗?2C. 使用 Maxim 的 TCP/IP 栈需要付费吗?2D. 我必须使用 Maxim 的 MAC ID 芯片DS2502吗?2E. 有 C、
Java 和 TCP 编程方面的参考书吗?2F. 如果我使用 C 或汇编语言编程,该怎样访问栈呢?2G. 我怎样将 DS80C390 的代码移植到 DS80C400 上运行呢?2H. 生产过程中,我如何对闪存和 NV RAM 进行编程呢?2I. 一个外部文件系统可以和 TINI 协同工作吗?2J. TINI 可以从网络上读取音频数据流,并输出给一个数字扬声器吗? 3. 硬件问题 3A. 使用 TINI OS 访问串口时,串口的最大吞吐速率是多少?3B. 使用套接字的以太网端口,其最大传输速率是多少?3C. 有没有参考设计来帮助我加快设计进程?3D. 连接到以太网需要哪些接口器件?3E. 设备如何获得它的以太网 MAC 地址?3F. DS80C400 需要多高的工作电压?3G. 对最低存储器配置有何要求?3H. 基于 DS80C400 的设计是如何加载程序存储器的?3I. 我如何在 DS80C400/DS80C410/DS80C411 评估板上获得更多的 IO 呢?3J. 为什么我的 TINI 评估板无法使用 x4 时钟倍频呢?3K. 我的应用需要更多的串口。
我可以为我的 TINI 评估板增加外部串口吗?3L. 什么是以太网供电PoE? 1. 一般性问题 1A. 什么是网络微控制器?网络微控制器,使设计者能够快捷、简单地为嵌入式系统增加以太网/因特网连接功能。
除了具有一个 10/100 以太网 MAC 外,微控制器还有三个串口、一个控制器局域网CAN 2.0B 控制器和一个 1-Wire网络主机。
为实现对网络的访问, ROM中提供了 TCP IPv4/6 网络栈和操作系统,它们完全可以被应用程序访问。
网络栈支持 TINI OS 下最多 20 个并发 TCP 连接,并通过以太网 MAC 实现高达 5Mbps的传输速率。
1B. DS80C400、DS80C410 和 DS80C411 之间的差别是什么?DS80C400 包括:一个CAN 控制器、 64kB ROM 存储器、8kB 网络 SRAM、1kB 应用 RAM 和一个以太网 MAC。
DS80C410 和 DS80C411 是 DS80C400 的衍生版本。
DS80C410 具有 64kB 应用 SRAM;DS80C411 具有 64kB 内部 SRAM,但没有 CAN 控制器。
1C. 我如何运用 64kB 内部 SRAM?64kB SRAM 和 TINIm41x 外部存储器是重叠的。
你可以使用这两个存储器中的任何一个,但不能同时使用。
TINI OS 不会识别到重叠现象。
1D. TINI OS 是什么?更确切地讲,TINI OS 是指 TINI 运行环境,它是一个
Java运行环境,用于开发 Maxim 系列内置 IP 协议栈的微控制器如 DS80C400的网络应用程序。
随着 IP 网络的普及,嵌入式系统的联网功能也变得十分必要。
然而,网络协议编程十分复杂,而且需要很长的测试周期。
TINI 运行环境提供了完整的 TCP IPv4/6 协议栈,它符合因特网标准。
网络栈由一个多任务操作系统 TINIOS 驱动。
使用 TINI 运行环境和它自带的 API,开发者能够快速编写嵌入式网络应用程序。
表 1 列出了目前支持的网络协议。
表 1. TINI 运行环境支持的网络协议PPP DADIPv4/6 SMTPTCP DHCPUDP FTPIGMP HTTPICMP TELNET有关 TINI 运行环境的更多信息,请参考下面的链接。
TINI 接口方面,应用笔记 708:Exploring Tiny InterNet Interfaces TINIPPP 方面,应用笔记 702:Using TINI Point-to-Point Protocol PPPIPv4/6 方面,应用笔记 703:Embedded Networking with IPv6TCP 方面,应用笔记 196:Designing a Virtual Modem Using TINIHTTP 方面,TINIWebserver 位于 tini_1.1x SDK 的 examples 目录下1E. Slush 是什么?Slush 是一个小型的系统 shell。
类似 Unix,它提供与串口TTY、Telnet 和 FTP 服务器的接口。
Slush 不是一个完整的操作系统,但又比一个简单的 shell 功能多。
它提供了查看和操作文件系统的方法, 并可控制包括看门狗定时器和网络配置等在内的系统功能。
Slush 文档资料可从以下链接获取:TINI SDK 的 tini1.1xdoc 目录应用笔记 3108:Modifying and Rebuilding Slush1F. 网络微控制器是如何与因特网接口的?一个内置的 10/100 Base-T 以太网媒体访问控制MAC模块,构成了微控制器和以太网之间的数据接口。
它将文件或数据转换为符合以太网传输规范的数据包。
与因特网的物理连接是通过一个物理层接口PHY实现的。
它将微控制器的 0V到 3V 信号转换为 0V 高电平、-2.05V 低电平的信号。
PHY 由集成电路、变压器和相关的支持电路组成。
用标准的 Cat 5E 电缆,并通过一个插孔将系统与墙上以太网网口相连。
1G. 网络栈是什么?网络栈是协同工作的一组 TCP/IP 协议,它定义了因特网的通信过程。
为便于软件访问,内部 ROM 存储了处理这些协议的软件。
用户使用TINI 编程时,可以自动访问这些栈空间;或者由用户编写的 C 和汇编程序来访问它们。
使用 TINI 栈可以访问局域网和广域网。
对以太网的全面支持使得设计能够与 LAN 连接。
点对点PPP协议可实现串口 IP IP over serial,并支持无线网络或使用 modem 的电话线网络。
1H. 我以前没有用过网络协议。
我应该怎样开始设计?幸运的是,通过 TINI 平台进行设计,并不需要你对以太网硬件或软件非常了解。
搭配使用 DSTINIm400评估模块和 DSTINIs400 插座板,即构成了整个硬件开发平台的基础。
使用
Java编程语言,可以方便地使用广泛的 TINI 平台软件函数库。
TINI 开发环境还提供了使用 BSD 套接字的标准套接字接口,更可简化高级用户的编程工作。
了解更多信息,请查阅参考指南:Getting Started with TINI PDF和 TINI规范和开发指南1I. 提供哪些开发工具?开发工具包括:DS80C400-KIT:该评估套件包括评估 DS80C400 微控制器所需的所有软硬件。
它包括 DSTINIm400 DSTINIs400 评估板、 DB9 直通式电缆、以太网交叉电缆、 KeilC 编译器试用版、Keil C 函数库和 TINI SDK。
模块和插座板可在生产或设计中分别购买。
DSTINIm400:评估模块,评估 DS80C400 的子板。
DSTINIm400:插座板,DSTINIm400 的母板。
DSTINIm410:评估模块,用于评估 DS80C410 和 DS80C411。
Systronix 制造的 TStik 评估板,允许开发人员以单板机或评估板的形式使用DS80C390 或 DS80C400。
TINI 软件开发工具包SDK是一套免费的开发工具, 它包含编程用的 API 和 TINIJAVA 运行环境,并提供应用实例和文档资料。
TINI SoM-400EM 模块由 EMAC Inc.提供。
模块基于 DS80C400 网络微控制器,并可定购与 DSTINIm400 引脚兼容的版本。
1J. 提供 DS80C400、DS80C410 和 DS80C411 在线仿真器ICE吗?MetalinkCorporation 和 Phyton 提供 DS80C400 的 ICE。
欲获取更多信息,请与这些厂商联系。
1K. 我怎样获得 DS80C400 和 TINI OS 方面的技术支持?TINI 论坛是最快捷的途径,从那里可以得到大多数问题的答案。
Maxim 的专家和嵌入式开发社区的同伴经常在社区中进行在线交流。
由于这些讨论组具有大量交流信息,因此与向下面技术支持邮件地址发送邮件的方式相比, 提交到社区的技术问题可能会得到更快解答。
登陆 TINI 论坛 Maxim Discussion Board 吧。
登陆后,你就可以搜索一般问题的解答信息存档。
如需技术支持,请访问 Maxim 支持中心。
2.软件问题 2A. 串口/CAN/1-Wire 的以太网桥是什么?一个系统经常需要将一种通信协议转换到另一种通信协议。
例如,一个工厂设备可能有一个 RS-232 串口,但是它需要通过以太网接口与监控计算机进行通信。
网络微控制器是在这些系统间实现桥接的理想器件。
基于 DS80C400 的设计拥有四个串口、一个 CAN 接口和一个 1-Wire 接口,它可以作为不同类型网络间的高速智能桥。
可以在 TINI- Tiny InterNet Interfaces 中找到一个以太网到串口桥的例子。
应用笔记 2935: Design Considerations for CAN Bus and Asynchronous Serial应用笔记 704:Asynchronous Serial-to-Ethernet Device Servers2B. 我怎样对 DS80C400 进行编程?我必须用
Java 吗?网络微控制器可以用
Java、C 或 8051 汇编语言进行编程。
TINI 运行环境同样支持 DS80C400。
JavaSun Microsystems 和 Borland 的
Java 编译器是兼容的。
要运用所有以太网功能,并非必须采用
Java,但它是在 TINI 环境下编程时最简单的首选方式。
此外,
Java 环境的支撑工具和函数库是最多的。
编译器可从
Java Technology 获得,需要“
Java 2 Platform,Standard Edition” J2SE包;1.2.2、1.3.1或 1.4.1 版本以及
Java Communications API。
Getting Started with TINI PDF应用笔记 614:Diagnostic Port for the TINIs400CSDCC 和 Keil Software 提供 C 编译器。
可以使用传统的 8051 编译器,但是只有 Keil Software 的 PK51 C 编译器支持 DS80C400 和 ROM 网络栈的扩展地址空间。
DS80C400 的 ROM 中包含完整的 TCP/IPv4/6 网络栈和一个小型操作系统,可由用户编写的应用软件来访问。
C 函数库的主页参见 Maxim DS80C400/410/411,这里包括函数库和用 Keil 工具开发的示例应用程序。
文档/示例 Keil,IAR 和 SDCC 的 C 函数库应用笔记 613:DS80C400 的 Keil C 语言编程应用笔记 3362:Using the Keil μVision Debugger with the DS89C4x0应用笔记 606:Configuring Keil PK51 Tools to Support 24-Bit ContiguousAddressing Mode应用笔记 2777:用 Keil MON390 编程 TINIm400应用笔记 3346:在 DS80C400 应用中使用 SDCC 编译器2C. 使用 Maxim 的 TCP/IP 栈需要付费吗?与其它网络解决方案不同,Maxim 允许用户免费使用微控制器内部基于 ROM 的 TCP/IP 栈,不收取任何费用。
2D. 我必须使用 Maxim 的 MAC ID 芯片DS2502吗?不是必须使用 DS2502 才能获取 MAC ID。
MAC ID 可以用 TINI OS 通过软件编入设备中。
但是根据许可协议,所有用于软件产品的程序, 只允许与以太网地址芯片DS2502或其它被认可的替代品一起使用,以表明得到了 Maxim 的批准。
2E. 有 C、
Java 和 TCP 编程方面的参考书吗?有很多这方面的书籍。
我们的工程人员推荐以下参考书目:The TINI Specification and Developers Guide,作者 Don LoomisAddison-Wesley,2001。
这本书已经停止出版,但是旧的版本可以在网上书店找到。
本书的免费 PDF 格式文件,可从这里下载:TCP/IP Illustrated,Volume1:The Protocols,W. Richard Stevens,Addison-Wesley,1994。
Thinking in
Java,Bruce Eckel,Prentice Hall PTR,2002。
更多技术问题,参见 Jan Axelson 编写的 Embedded Ethernet and InternetComplete。
2F. 如果我使用 C 或汇编语言编程, 该怎样访问栈呢?网络栈和调度程序存放在内部 64kB ROM 中,以 BSD 套接字或 API 的形式访问它们。
Maxim 为那些用 C 语言编程的人员提供了 BSD 套接字接口。
也可以在汇编语言中调用网络栈。
我们在 TINI SDK 中提供了一个汇编器。
程序名是 a390.exe。
汇编语言与网络栈接口的实例可参见应用笔记 609:InternetSpeaker with the DS80C400 Silicon Software。
2G. 我怎样将 DS80C390 的代码移植到 DS80C400 上运行呢?DS80C400 是建立在DS80C390 体系结构基础上的。
TINI 运行环境支持两款微控制器。
两个器件最重要的区别是:DS80C400 包含以太网 MAC 和一个 Maxim 的 1-Wire 接口,并且只有一个 CAN 模块。
如果没有全部使用 DS80C390 的两个 CAN 控制器,微控制器就会共享加载器与应用程序间的第一个闪存扇区。
DS80C390 的 TINI OS0-6和应用程序7-...也使用固定的扇区。
DS80C400 提供 TINI 字符串搜索机制一般来讲,扇区采用 0x40-0x46 和 0x47-...。
片选也是不同的。
DS80C400 提供更多的 DPTR选项,这对于汇编语言编码非常有用。
更多信息参见:Getting Started with TINI Guide PDF2H. 生产过程中,我如何对闪存和 NV RAM 进行编程呢?网络启动NetBoot特性内嵌于 Maxim 网络微控制器DS80C400,DS80C410 和 DS80C411的 ROM 中。
在生产环境下, NetBoot 特性可实现快速、 简单的闪存和非易失性 SRAM 存储器编程。
应用笔记 3398:DS80C400/DS80C410/DS80C411 Network Boot2I. 一个外部文件系统可以和 TINI 协同工作吗?可以。
TINI 提供了一个访问其它文件系统的方法,用户不会再受所能处理的信息类型和信息量的限制。
由于TINI 也把它的 RAM 当作操作堆使用,所以使用远程文件系统时,允许使用更多的 RAM 来运行应用程序。
应用笔记 709:Adding An External File System to TINI2J. TINI 可以从网络上读取音频数据流, 并输出给一个数字扬声器吗?DS80C400微处理器的网络支持功能, 使其成为简单以太网扬声器设计的自然选择。
使用处理器 ROM 内置的 TCP/IP 栈,一个 8051 汇编语言编写的应用程序就可以很轻松地从网络上读取音频流数据,并使用这些数据来驱动一个数模转换器DAC,从而为一组扬声器提供线路输出。
应用笔记 609:Internet Speaker with the DS80C400 Silicon Software应用笔记 3266:Using the DS80C400/TINIm400 for Remote Audio3.网络微控制器的硬件问题 3A. 使用 TINI OS 访问串口时,串口的最大吞吐速率是多少?当串口配置为 115200bps 波特率, 并且采用 36MHz 系统时钟频率时,最大发送和接收速率大约为每秒 10kB。
持续的传输速率高度依赖于 CPU 的负荷,且每种应用都会有所不同。
最大波特率取决于具体设计采用的工作频率,更多信息参见应用笔记 2935。
3B. 使用套接字的以太网端口,其最大传输速率是多少? 采用 36MHz 系统时钟频率时,最大发送和接收速率为每秒 266kB。
3C. 有没有参考设计来帮助我加快设计进程?我们已经将参考设计电路图放到了网上,见 TINI Board。
应用笔记 615:Design Considerations for DS80C400-Based TINI Systems应用笔记 3478:DS80C400/410/411 闪存选择应用笔记 2935:Design Considerations for CAN Bus and Asynchronous Serial3D. 连接到以太网需要哪些接口器件?为了将微控制器和相关的存储器连接到因特网,你需要一个物理层接口PHY器件与网口比如 10/100 BASE-T 或光纤连接。
我们的参考设计采用了 Intel LXT972ALC,但可使用任何与媒体无关接口MII协议兼容的 PHY。
另外,我们的参考设计采用 Belfuse 的 S558-5999-T7 变压器。
3E. 设备如何获得它的以太网 MAC 地址? 启动时,DS80C400 会自动搜索外部1-Wire 总线,以查找外部 DS2502-E48 器件需另外购买。
如果找到, DS2502-E48会给 DS80C400 提供一个唯一的 IEEE以太网 MAC 地址。
以太网 MAC 物理地址也可以通过用户应用软件来编程设置。
3F. DS80C400 需要多高的工作电压?DS80C400 需要一个 1.8V 和一个 3.3V 电源电压。
器件的 I/O 引脚由 3.3V 电源供电,允许器件与 3.3V 逻辑电平接口。
微处理器的 I/O 能够耐受 5V 电压,因此可与 5V 外设连接。
VCC1 和 VCC3 的上电顺序并不重要。
DSTINIm400 采用 MAX1792 低压差线性稳压器,由 3.3V 电源产生 1.8V电源。
3G. 对最低存储器配置有何要求?一个最小的网络设备需要 64kB SRAM。
应用代码可以通过网络下载到 SRAM 中。
网络初始化Netboot可在一个联网的裸机中进行。
如果需要非易失性程序存储器, 可以采用外部闪存/EPROM, 但这不是必须的。
存储器的访问速度取决于工作时钟频率和电路板设计。
例如我们经常说,一个运行在 36MHz 时钟频率下的系统,需要一个 70ns RAM 和闪存。
为实现全速运行,你需要使用 15ns 或者更快访问时间的 RAM。
应用笔记 3478:DS80C400/410/411 闪存选择应用笔记 1087:Micro Tutorial 1: Understanding DC ElectricalCharacteristics of Microcontrollers3H. 基于 DS80C400 的设计是如何加载程序存储器的?微控制器具有一个 ROM引导装载程序加载器,可用来配置微控制器的某些特性。
ROM 也可用来将软件载入 NV SRAM 中,然后将 SRAM 作为程序存储器。
ROM 支持加载 Advanced MicroDevices 提供的任何闪存器件,从而满足特定设计所需的速度和空间/格式要求。
在具体设计中使能 ROM 加载器的细节,可参见高速微控制器用户指南:网络微控制器补充资料English only的第 173 页。
ROM 加载器使用一个由外部时钟源晶体或振荡器作为时钟的内部计数器,并将波特率自动调整到与输入串行数据流相一致。
由于自动波特率特性和外部时钟源有关,我们建议你采用 18.432MHz 晶振和 x4 倍频模式,从而使其运行在大约73MHz 频率下。
这个频率可使自动波特率程序与大多数标准波特率相同步。
3I. 我如何在 DS80C400/DS80C410/DS80C411 评估板上获得更多的 IO 呢?结合TINIm400 参考电路板和 TINIs400 插座板,DS80C400 评估板为你提供了一个出色的评估平台,可用于评估 TINI 运行环境并开发基于 TINI 的应用。
TINIm400/TINIs400 配套电路板有一点不足之处,即它的通用 IO GPIO引脚数有限。
TINIs400 插座板只提供了几个可用作 GPIO 的引脚;插座板上的大多数 IO引脚都专门用于其它功能比如,J27 提供 I2C 引脚,J4 提供外部中断引脚。
关于如何使用一个复杂的可编程逻辑器件CPLD来配置硬件并开发相应的软件,从而为 TINIs400 插座板提供 32 个额外 GPIO 引脚,有一篇应用笔记对此进行了逐步说明。
请参考应用笔记 3664:扩展 TINI 的 IO 性能。
3J. 为什么我的 TINI 评估板无法使用 x4 时钟倍频呢?在 DS80C400 推出之前,由于受到 DS80C390 处理器的最大速率限制,TINI 系统的最大运行频率被限制在40MHz 以下。
DS80C400 支持 75 MHz 速率,使 TINI 固件能够支持系统使用最快的晶振倍频因子。
然而,为实现价格低廉的系统,TINI 参考设计TINIm400 和TINIs400并不支持这样高的速率。
很多开发者试图让他们的 TINI 运行在 x4 晶振倍频因子下,但最后发现 TINI 竟然停止工作。
产生这种故障现象,并不是因为 DS80C400 处理器不支持这么高的速率,而是因为闪存不支持该速率。
因此,一个高速 TINI 系统需要装有快速 RAM 固件存储和执行的定制电路板。
应用笔记 3413:初始化高速 TINI 系统3K. 我的应用需要更多的串口。
我可以为我的 TINI 评估板增加外部串口吗?可以。
在运行 1.1x 版 TINI OS 的 DSTINIs400 插座板上,可以加入外部串口。
请参考下面的应用笔记:应用笔记 3412:TINIS400 外部串口参考设计应用笔记 2380:Using TINIs Serial Ports3L. 什么是以太网供电PoE?以太网供电PoE是近期被 IEEE 802.3af 标准认可的一项配电技术。
PoE 允许通过无处不在的通用网络以太网来同时传送直流电和数据包。
也就是说, 不必再为任何需要始终供电的网络设备提供本地交流电源,类似网络设备包括 IP 电话、无线接入点和网络监控相机。
它同时意味着这些设备不必再靠近墙壁的插座附近安放,并省去那些电源电缆。
应用笔记 3363:新型以太网系统,与数据传输一起提供直流供电