当前位置:首页 > 电源 > 数字电源
[导读]本文讨论一种基于TINI的以太网接入方案及利用Java作为开发工具来开发串口到以太网数据转换的通信程序。

摘要 在工业控制和消费电子领域,目前许多设备要求具备以太网或者与Internet通信功能。本文讨论一种基于TINI的以太网接入方案。此系统可以很方便地扩展到其他通信协议的转换,诸如CAN、1-Wire网络等,以适应不同设备接入以太网的需要。利用本系统可以很好地解决与自动化生产设备、网络开关和传感器的远程通信问题,以及实现远程诊断与控制。另外,介绍了利用Java作为开发工具来开发串口到以太网数据转换的通信程序。
关键词 网络数据转换 TINI Java DP83846A DS80C400

    为了达到利用Internet强大的网络功能,实现远程监控的目的,需要研究合理的网络接人方案。利用基于TINI平台的嵌入式系统,搭建不同设备接人计算机网络的桥梁。利用嵌入式系统强大的软硬件功能,可以支持不同的设备,实现接入方案的通用性。由于嵌入式系统具备较好的数据处理能力,不仅可以作为简单的网络接口,还可以扩展接人设备的网络功能,甚至于还可以对通信的数据进行加密等处理。

    嵌入式系统包括专用的硬件和软件部分,硬件提供性能的支持,而软件则为用户提供广泛的灵活性。嵌入式系统的软件包括其自身的操作系统和编程环境。Java所具有的各种特性使它成为嵌入式设备理想的软件开发工具。针对Java有很多免费开放的资源,Java独立于硬件平台,具备可移植性。这一切都可以降低嵌入式设备开发和使用的成本。其中TINI平台就是一种具备Java开发功能的嵌入式系统。

1 系统硬件组成
    基于TINI数据转换系统的硬件系统如图1所示。系统与外界的接口主要是RS232的串口和RJ45的以太网接口,其功能就是将串口设备接人到局域网络甚至于Interne。

2 网络数据转换系统的Java程序
2.1 软件开发工具包——TlNI SDK

    为了在编程中实现对硬件的访问,Dallas公司开发的TINI SDK将DS80C400中的硬件部分虚拟为Java的类。通过调用相关的方法来实现对硬件的操作。SDK中包含Dallas公司开发的嵌入式操作系统。它是多任务、多线程、具有跨平台的能力、拥有高度优化的Java运行环境的操作系统。

    在TINI SDK的支持下开发应用程序,主要采用Java进行,通常不直接面对汇编语言,但是TINI运行环境提供了使用本地方法的机制。为了优化严格要求速度的通道或访问底层硬件,可以使用本地语言(主要是汇编语言)来编写子程序,这样增加了系统的灵活性。

    利用SDK中提供的API可以简化编程。利用SDK中提供的JavaKit和TINIConvertor等工具,在PC上进行程序的开发调试工作,生成适用于TINI运行环境的目标应用程序。通过JayaKit向TINI硬件存储器中装载TINI的运行环境(包括TINI的操作系统),配置好网络参数,即可通过FTP、TELNET等下载用户程序到TINI硬件上并控制运行。TINI的Java虚拟机将Java字节码转换成为机器硬件系统能够执行的代码。

2.2系统程序的设计方法

    为了实现串口数据和以太网络数据之间的交换,设计了基于TINI系统的网络数据转换程序。该程序的主要功能是,从串口设备读取数据,将所得到的数据进行TcP/IP协议封装,通过RJ45的接口发送到上位机,与上位机的服务器程序进行交互;同时,将上位机发送给TINI的数据转发到RS232的串口,进而可通过网络远程监控现场的串口设备。本设计中,TINI印刷电路板上有两个串口,分别定义为串口O和串口4。单片机内部集成UART,串口0用来串口启动TINl,下载TINI运行环境,以及作为TINI的输出终端。本程序中,利用串口4和上位机服务器程序交互。

    数据转换由两个进程来实现,它们分别是SerialWriter和SerialReader。SerialWritel的功能是从上位机服务器读取数据流,再把数据写到串口输出数据流;SeriaReader的功能是把串口缓冲区中的可用数据读到输入缓冲区,通过向网络输出流写数据把串口数据发送到网络服务器,并且更新串口数据量;同时监视这两个进程有无异常。如果捕捉到异常,便关闭数据流并中断维持线程,结束程序。

    SerialToEthernet本身继承了一个线程类。它是一个维持线程,功能是判断系统通信状态。如果正常,则每隔6 s打印输出数据流量;如果连接的服务器被关闭,则关闭串口socket及相关的流。它的线程程序中,是一个有系统运行状态标志控制的循环,维持程序运行,每一次循环中首先使该进程睡眠6 000 ms,然后打印输出此时的数据流量。程序的流程如图2、图3、图4所示。

3 系统调试方案
    系统调试的主要目的是模拟现场设备与以太网之间的数据转换,将PC机通过串口与以太网接口与系统相连,接线方式如图5所示;用PC机模拟现场的设备,同时,利用PC机作为上位机监控系统运行。

    实验中除了运行SerialToEthernet外,还准备了两个简单的用户程序,用于系统调试,分别是HelloWorld和Blinky。
    第一步,下载运行HelloWorld。其功能是在以JavaKit作为TINI的系统输出终端(类似于PC机的显示器),打印输出“Hello World”的字符串,用于检验串口O。
    第二步,下载运行Blinky。它的功能是与P3.5相连的LED不停闪烁,用于检验I/0口的功能。
    第三步,下载运行SerialToEthernet,同时运行上位机上服务器程序TINlServer。TINI系统上运行Serial-ToEthernet,用于实现数据转发功能。为了验证上位机与TINI问的串口通信,上位机上运行串口调试程序,从而用上位机模拟实际的现场串口设备。运行串口调试程序时,在其中把串口设为与TINI的串口参数相同,发送模式设为连续发送。在这样的模拟情况下,从串口调试程序窗口输入的数据,通过串口发送给TINI系统,经过TINI的转发,通过RJ45接口发往上位机。上位机运行服务器程序TINIServer,它将TINI发来的数据不经处理直接通过输出流发送给TINI。经过TINI的转发,数据再次由串口返回上位机,显示在串口调试程序的“接收区”中。数据流向如图6所示。

4 结论
    与传统的工业控制数据转换系统相比,TINI更加廉价,更加紧凑,消耗功率更低,并且易于维护。此外,TINI还支持许多底层的通信接口,具有足够的灵活性,可以适应不同联网的要求。基于TINI的网络数据转换系统方案是低成本而且可靠的。利用Java编程可以提高嵌入式系统软件开发的效率。在本系统的开发过程中。利用Java软件很方便地实现对底层硬件的访问;利用Java自身的特性,可以实现强大的网络功能。

    对于设备来说,通过本系统可以利用现有的网络扩展其功能;同时也可以利用以太网络实现对设备的远程诊断控制,实现更加广泛意义上的网络化。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭