WWW.PLCJS.COM——可编程控制器技术门户
1-wire总线开发 plcjs.技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WW.W_PLCJS_COM-PLC-技.术_网
一、什么是1-wire总线plcjs.技.术_网
1-wire单总线是近年来新兴的一种总线技术。它采用单一线传输时钟和数据,以其具有的节约I/O资源、结构简单、成本低廉、便于总线扩展和维护等优点越来越多的被广泛应用于民用电器、工业控制领域。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
1-wire 单总线适用于单个主机控制一个或多个从机设备的系统。当只有一个从机挂在总线上时,系统可按单节点方式操作。当多个从机挂在总线上时,系统则按多个节点方式操作。——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PmLC-技.术_网
包括达拉斯半导体公司现在生产的信息钮扣iButtion(information Button)在内,已有30多种1-Wire器件,它们采用一种特殊的通信协议,通过单条连接线解决了控制、通信和供电等问题,降低了系统成本并简化了设计,正越来越广泛地应用于日常生活中。例如iButton已用于金融、电信、商业以及军事领域等。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
1-Wire总线是一种简单的信号电路,它仅用一根数据线即可与外界进行信息交换。1- Wire总线器件的共性是:每个器件都有一个不会与其它任何器件重复的出厂时应已固化的序列号,也就是说,每一个器件都是唯一的。一旦器件的序列号已知,通过这个序列号,任意一个器件都可以从众多连到同一1-Wire总线的器件中被选出用于通信。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
二、开发需要的资源WWW_P※LCJS_CO※M-PLC-技-.术_网
主机端接口器件W1WW_P4LCJS_COM-PLC-技.术_网
这些年来,已经生产了大量适用于个人计算机的主机端接口,利用各种方法把1-Wire网络和微控制器连接起来,但在其设计中很少有连贯性。每个主机都设计有一项专门的用途,用于其它场合时通常工作不可靠。主机端的硬件结构是决定1-Wire网络设计极限的一个关键因素。近距离应用或相邻iButton探测器所采用的简单硬件接口用于较大的网络或复杂的布线结构时,可能工作不稳定。而一些供远距离通信使用的复杂驱动电路在用于小型网络或中型网络时可能工作性能也不好。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
目前最常用的主机端硬件接口如下:W1WW_P4LCJS_COM-PLC-技.术_网
(1)DS9097 PC串口适配器(不适用于新的设计)WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
(2)DS9097U PC串口适配器(基于DS2480B)P.L.C.技.术.网——可编程控制器技术门户
(3)DS1410E PC并口适配器WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
(4)DS9097U-E25 带有EPROM编程的PC串口适配器WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(5)微控制器端口加2k 上拉电阻WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
(6)带有摆率限止的FET和1k 电阻的微控制器WWW_P※LCJS_CO※M-PLC-技-.术_网
(7)带有高级总线接口的微控制器WW.W_PLC※JS_C,OM-PL,C-技.术_网
(8)带有DS2480B总线接口的微控制器P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
芯片电路板P.L.C.技.术.网——可编程控制器技术门户
比如设计的温度传感器电路板、电力监控电路板、产品标识电路板等等。在此不多叙述。下面以DS9097U PC串口适配器控制读写DS2433为例介绍开发流程。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
连线WW.W_PLCJS_COM-PLC-技.术_网
DS9097U PC串口适配器一端连接计算机的串口,一端连接电路板。在写程序之前先把DS9097U PC串口适配器需要的驱动从达拉斯公司的网站上下载下来(install_1_wire_drivers_v401Beta)并且配置好。如下图。
WWW.PLCJS.COM——可编程控制器技术门户
500)this.width=500>
配置好后,就可以进行程序的编写了。
四、程序编写
WWW_P※LCJS_COM-PLC-)技.术_网
程序分成两个部分,一个部分是通过DS9097U读写DS2433,另一个部分是读取数据后的应用开发。在这里只介绍第一个部分。从达拉斯的网站上可以下到1-wiresdkver400b这个软件开发包,里边是一些读写器件的例程。主要提供了了一个程序的参考。此类程序的第一步是加载dll文件,把需要的函数得到,如:
hInst = LoadLibrary('IBFS32.DLL');
if (hInst != NULL)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
{
W1WW_P4LCJS_COM-PLC-技.术_网
TMExtendedStartSession=(long (far pascal *)(short,short,void far *))GetProcAddress(hInst, 'TMExtendedStartSession');
WWW_P※LCJS_COM-PLC-)技.术_网
TMReadDefaultPort=(short (far pascal *)(short far*, short far*))GetProcAddress(hInst, 'TMReadDefaultPort');
WWW_PLCJS@_COM%-PLC-技.术_网
TMSetup=(short (far pascal *)(long))GetProcAddress(hInst, 'TMSetup');
WWW_PLCJS_COM-PLC-技.术_网
TMEndSession=(short (far pascal *)(long))GetProcAddress(hInst, 'TMEndSession');
TMFirst=(short (far pascal *)(long, void far*))GetProcAddress(hInst, 'TMFirst');
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
TMNext=(short (far pascal *)(long, void far*))GetProcAddress(hInst, 'TMNext');
TMRom=(short (far pascal *)(long, void far*, short far*))GetProcAddress(hInst, 'TMRom');
plcjs.技.术_网
TMAccess=(short (far pascal *)(long, void far*))GetProcAddress(hInst, 'TMAccess');
WWW_PLCJS@_COM%-PLC-技.术_网
TMStrongAccess=(short (far pascal *)(long, void far*))GetProcAddress(hInst, 'TMStrongAccess');
TMTouchByte=(short (far pascal *)(long, short))GetProcAddress(hInst, 'TMTouchByte');
WWW_PLCJS@_COM%-PLC-技.术_网
TMBlockStream=(short (far pascal *)(long, unsigned char far*, short))GetProcAddress(hInst, 'TMBlockStream');
// nvram devices only
WWW_PLCJS_COM-PLC-技.术_网
TMWritePacket=(short (far pascal *)(long, void far*, short, unsigned char far*, short))GetProcAddress(hInst, 'TMWritePacket');
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
TMReadPacket=(short (far pascal *)(long, void far*, short, unsigned char far*, short))GetProcAddress(hInst, 'TMReadPacket');
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
}
WWW_PL※CJS_COM-PLC-技.术_网