旧文备份: 工业网络中单片机节点的地址和波特率设置方式

在工业应用中有很多单片机组网的应用,无论是485网络、CAN网络还是其他什么网络,都会涉及到节点地址的设置问题,下面就来探讨几种地址的设置方式:

  1. 硬件设置

在单片机电路板上,加一个拨码开关,以二进制的开关状态表示地址值,拨码开关由单片机的I/O去检测,单片机可以在每次上电去检测一下拨码开关的状态,设置本节点的地址,也可已定期比如500mS去查询一次开关的状态,动态设置本节点地址,建议采用上电检测的方法,因为该方法简单实用,可以在检测后初始化与地址相关的一些资源,如果采用动态检测的方法,不但占用系统资源而且与地址相关的资源每次都要重新初始化一遍,这样显得很麻烦而且不利于系统设计。

  1. 软件设置

采用纯软件的方法,在节点出厂的时候,预置节点的初始地址,将节点挂到网上之后,由上位机通过网络通讯命令对该节点的地址进行设置,然后节点将地址信息存储在非易失性存储器,每次系统重新启动,程序都要去读取存储其中的地址信息。该方式要求节点带有非易失性存储器可供读写,且在网络中同时只能有一个节点地址为初始地址,否则会引起网络访问混乱甚至网络崩溃。

  1. 软硬件结合设置

    1. 多位拨码开关+软件设置

    既可以通过拨码开关设置地址,又可以通过软件设置,问题两种设置方法到底听谁的,解决方法是,当拨码开关置为规定的状态(比如全0)时,可以由软件来更改节点地址,节点在每次上电时去检测拨码开关状态,如果是该状态,就去非易失性存储器中查找软件更改过的节点地址信息,以之为节点地址,如果上电后检测到其他状态则以相应状态所表示的地址码为该节点的地址。

    1. 一位拨动开关+软件设置

    该方式实际上是属于软件的地址设置方式,加的一位拨动开关用来将节点地址切换回初始值,避免了上位机丢失了已经设置过的该节点地址而找不到该节点的现象,而且该位开关起到一个恢复默认(出厂)设置的作用,与软件配合可以使节点地址、波特率、默认的配置全部都恢复为预定义的值,好处自去体会。

对于波特率的设置方式基本上与节点地址差不多,但是要注意,波特率改变是所有节点整个网络的事情,要比地址的设置有考虑更多。

几种方式各有优缺点,具体应用哪种方式应该依系统设计要求和资源综合考虑而定。

(2007.1.30)

时间: 2024-10-12 16:13:30

旧文备份: 工业网络中单片机节点的地址和波特率设置方式的相关文章

旧文备份:CANopen协议中SDO服务

SDO是服务数据对象接口(Service Data Obiect)的缩写,顾名思义提供服务数据的访问接口,服务数据就是一些实时性要求不高的数据,一般是指节点配置参数,因此,SDO一般用来配置和获得节点的配置参数.其优先级只比心跳(Heartbeat)高. SDO既然称之为服务,那就要有服务的提供者和使用者,提供者就是SDO server,使用者就是SDO client,在CANopen网络中每个节点都要有一个SDO server,因为每个节点的对象字典大部分对象都是通过SDO来访问的,对象字典的

旧文备份:怎样利用好单片机上的存储器资源来实现OD的存储与访问

我们知道OD(对象字典)是CANopen的核心,所有功能都是围绕它开展的,是协议栈的数据中心,良好的OD实现是协议栈高效稳定运行的基础,而OD的实现最基本的一点就是怎么去保存它.因为OD的内容比较杂,读写属性上,有只读数据.只写数据.可读写数据:保存要求上有非易失和掉电丢失两种类型:数据类型上有字符型.整型.长整型等等:存储格式上有8位.16位.32位等.其它的不管,本文现只讨论怎么利用单片机的资源去尽量满足OD的存储需求. 有人会以为这还要讨论么?只读的就放在只读存储器中,可写的就放在RAM中

无线传感器网络中的节点定位技术

原文:http://www.cnblogs.com/dolphin0520/archive/2013/05/03/3056789.html 无线传感器网络的许多应用要求节点知道自身的位置信息,才能向用户提供有用的检测服务.没有节点位置信息的监测数据在很多场合下是没有意义的.比如,对于森林火灾检测.天然气管道监测等应用,当有事件发生时,人们关心的一个首要问题就是事件发生在哪里,此时如果只知道发生了火灾却不知道火灾具体的发生地点,这种监测没有任何实质的意义,因此节点的位置信息对于很多场合是至关重要的

旧文备份:CANopen中SYNC的功能和使用

SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发.SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高.SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产

旧文备份: 怎样实现SDO服务

SDO是CANopen协议中最复杂的一部分,带有应答机制,有多种传输方式,并且完整的SDO功能节点需提供1个SDO server和多个SDO client,因此SDO的实现异常困难,协议多种传输方式的解析处理还有迹可循,多个SDO client服务和多个对SDO server的访问的协调就不容易了,这里介绍一种方法——SDO线程来解决. 注意,这里的线程可不是操作系统提供的多线程技术,况且为保证协议栈良好的移植性,在CANopen协议栈核心代码里中也不好去调与操作系统相关的库函数.我们这里的SD

旧文备份:利用一个定时器实现多个虚拟定时器的两种方法

固定周期法 使用一个硬件定时器进行固定周期(比如1ms)定时,用一个结构体数组作为软定时器描述表,数组的结构体数就是最大虚拟定时器的数量,每个结构体的成员都包括虚拟定时器状态(空闲.激活.运行.超时触发.周期触发).定时值(换算成定时周期数,例如1ms的硬件定时周期,现进行125ms的定时,定时值就是125).标识ID和回调函数等:用一个变量作为定时周期计数器,每次进入定时中断,重置定时器,扫描结构体数组中的每个成员结构体,对定时值做减一操作,然后判断该定时值是否为0,是则判定该值对应的虚拟定时

SQL Server 2012将数据库备份到网络中的共享文件夹

把计算机computer1 中的数据库备份到计算机computer2(IP:192.168.0.130)中的一个共享文件夹下 在computer2中的F盘下建一个共享文件夹叫DBBackupShare,注意在安全tab页内要把Everyone加进去. 在computer1和computer2计算机中各建立一个用户,都是管理员组的,用户名和密码必须一样, cmd命令行 给计算机添加用户,用户名是sql Net user sql 123 /add 把用户sql添加到管理员组里 Net localgr

旧文备份:rtlinux安装手册

前段时间接触了几天RTLinux,折腾了好几天才总算把它安装上,得益于Prof. Chang-Gun Lee的安装建议,觉得该文档可能会对准备尝试安装RTLinux的朋友们有帮助,本人英语很烂,也比较懒,好在也没几页,就试着翻译了一下,有需要的朋友可以将就着看看,英语好的可以去看原文. 总体感觉,RTLinux的硬件兼容性实在不敢恭维,同样的内核版本,同样的配置在有的平台上就跑不起来,反正我试了一个Intel845G主板的台式兼容机和一个SIS主板的神州移动PC,那个兼容机一加载RTLinux模

旧文备份:FFTW介绍

1. FFTW介绍 FFTW由麻省理工学院计算机科学实验室超级计算技术组开发的一套离散傅立叶变换(DFT)的计算库,开源.高效和标准C语言编写的代码使其得到了非常广泛的应用,Intel的数学库和Scilib(类似于matlab的科学计算软件)都使用FFTW做FFT计算. FFTW是计算离散Fourier变换(DFT)的快速C程序的一个完整集合. l        它可计算一维或多维.实和复数据以及任意规模的DFT:甚至包括正弦/余弦变换和离散哈特莱变换(DHT). l        FFTW输入