
什么是奇偶校验电路
奇偶校验电路是一种校验代码传输正确性的电路。
奇校验电路,当输入有奇数个1时,输出为1;偶校验电路当输入有偶数个1时,输出为0。
奇偶校验只能检查一位错误,且没有纠错的能力。
奇校验是通过增加一位校验位的逻辑取值,在源端将原数据代码中为1的位数形成奇数,然后在宿端使用该代码时,连同校验位一起检查为1的位数是否是奇数,做出进一步操作的决定。
奇偶校验器多设计成九位二进制数,以适应一个字节,一个ASCII代码的应用要求。
奇偶校验是一种冗余编码校验,在存储器中是按存储单元为单位进行的,是依靠硬件实现的,因而适时性强,但这种校验方法只能发现奇数个错,如果数据发生偶数位个错,由于不影响码子的奇偶性质,因而不能发现。
对于位数较少,电路较简单的应用,可以采用奇偶校验的方法提高系统的可靠性。
请问有没有人懂得74LS139实现奇偶校验电路电路
139是双路二-四译码器电路
总结数控机床中有哪些传感器,分别用来检测什么信号,其工作原理?
数控机床综合械、自动化、计、测量、微电子新技术,使用了多种传感器,本文介绍的是各样的传感器在数控机床上的应用。
1 引 言 由于高精度、高速度、高效率及安全可靠的特点,在制造业技术设备更新中,数控机床正迅速地在企业得到普及。
数控机床是一种装有程序控制系统的自动化机床,能够根据已编好的程序,使机床动作并加工零件。
它综合了机械、自动化、计算机、测量、微电子等最新技术,使用了多种传感器,本文介绍的是各种各样的传感器在数控机床上的应用。
2 传感器简介 传感器是一种能够感受规定的被测量,并按照一定的规律转换成可用输出信号的器件或装置,其输入信号(被测量)往往是非电量,输出信号常常为易于处理的电量,如电压等。
传感器种类很多,分类标准不一样,叫法也不一样,常见的有电阻传感器、电感式传感器、电容式传感器、温度传感器、压电式传感器、霍尔传感器、热电偶传感器、光电传感器、数字式位置传感器等。
在数控机床上应用的传感器主要有光电编码器、直线光栅、接近开关、温度传感器、霍尔传感器、电流传感器、电压传感器、压力传感器、液位传感器、旋转变压器、感应同步器、速度传感器等,主要用来检测位置、直线位移和角位移、速度、压力、温度等。
3 数控机床对传感器的要求 (1)可靠性高和抗干扰性强; (2)满足精度和速度的要求; (3)使用维护方便,适合机床运行环境; (4)成本低。
不同种类数控机床对传感器的要求也不尽相同,一般来说,大型机床要求速度响应高,中型和高精度数控机床以要求精度为主。
4 位移的检测 位移检测的传感器主要有脉冲编码器、直线光栅、旋转变压器、感应同步器等。
4.1 脉冲编码器的应用 脉冲编码器是一种角位移(转速)传感器,它能够把机械转角变成电脉冲。
脉冲编码器可分为光电式、接触式和电磁式三种,其中,光电式应用比较多。
在图1中,X轴和Z轴端部分别配有光电编码器,用于角位移测量和数字测速,角位移通过丝杠螺距能间接反映拖板或刀架的直线位移。
4.2 直线光栅的应用 直线光栅是利用光的透射和反射现象制作而成,常用于位移测量,分辨力较高,测量精度比光电编码器高,适应于动态测量。
在进给驱动中,光栅尺固定在床身上,其产生的脉冲信号直接反映了拖板的实际位置。
用光栅检测工作台位置的伺服系统是全闭环控制系统。
4.3 旋转变压器的应用 旋转变压器是一种输出电压与角位移量成连续函数关系的感应式微电机。
旋转变压器由定子和转子组成,具体来说,它由一个铁心、两个定子绕组和两个转子绕组组成,其原、副绕组分别放置在定子、转子上,原、副绕组之间的电磁耦合程度与转子的转角有关。
4.4 感应同步器的应用 感应同步器是利用两个平面形绕组的互感随位置不同而变化的原理制成的。
其功能是将角度或直线位移转变成感应电动势的相位或幅值,可用来测量直线或转角位移。
按其结构可分为直线式和旋转式两种。
直线式感应同步器由定尺和滑尺两部分组成,定尺安装在机床床身上,滑尺安装于移动部件上,随工作台一起移动;旋转式感应同步器定子为固定的圆盘,转子为转动的圆盘。
感应同步器具有较高的精度与分辨力、抗干扰能力强、使用寿命长、维护简单、长距离位移测量、工艺性好、成本较低等优点。
直线式感应同步器目前被广泛地应用于大位移静态与动态测量中,例如用于三坐标测量机、程控数控机床、高精度重型机床及加工中心测量装置等。
旋转式感应同步器则被广泛地用于机床和仪器的转台以及各种回转伺服控制系统中。
5 位置的检测 位置传感器可用来检测位置,反映某种状态的开关,和位移传感器不同。
位置传感器有接触式和接近式两种。
5.1 接触式传感器的应用 接触式传感器的触头由两个物体接触挤压而动作,常见的有行程开关、二维矩阵式位置传感器等。
行程开关结构简单、动作可靠、价格低廉。
当某个物体在运动过程中,碰到行程开关时,其内部触头会动作,从而完成控制,如在加工中心的X、Y、Z轴方向两端分别装有行程开关,则可以控制移动范围。
二维矩阵式位置传感器安装于机械手掌内侧,用于检测自身与某个物体的接触位置。
5.2 接近开关的应用 接近开关是指当物体与其接近到设定距离时就可以发出“动作”信号的开关,它无需和物体直接接触。
接近开关有很多种类,主要有自感式、差动变压器式、电涡流式、电容式、干簧管、霍尔式等。
接近开关在数控机床上的应用主要是刀架选刀控制、工作台行程控制、油缸及汽缸活塞行程控制等。
在刀架选刀控制中,如图2所示,从左至右的四个凸轮与接近开关SQ4~SQ1相对应,组成四位二进制编码,每一个编码对应一个刀位,如0110对应6号刀位;接近开关SQ5用于奇偶校验,以减少出错。
刀架每转过一个刀位,就发出一个信号,该信号与数控系统的刀位指令进行比较,当刀架的刀位信号与指令刀位信号相符时,表示选刀完成。
霍尔传感器是利用霍尔现象制成的传感器。
将锗等半导体置于磁场中,在一个方向通以电流时,则在垂直的方向上会出现电位差,这就是霍尔现象。
将小磁体固定在运动部件上,当部件靠近霍尔元件时,便产生霍尔现象,从而判断物体是否到位。
6 速度的检测 速度传感器是一种将速度转变成电信号的传感器,既可以检测直线速度,也可以检测角速度,常用的有测速发电机和脉冲编码器等。
测速发电机具有的特点是:(1)输出电压与转速严格成线性关系;(2)输出电压与转速比的斜率大。
可分成交流和直流两类。
脉冲编码器在经过一个单位角位移时,便产生一个脉冲,配以定时器便可检测出角速度。
在数控机床中,速度传感器一般用于数控系统伺服单元的速度检测。
7 压力的检测 压力传感器是一种将压力转变成电信号的传感器。
根据工作原理,可分为压电式传感器、压阻式传感器和电容式传感器。
它是检测气体、液体、固体等所有物质间作用力能量的总称,也包括测量高于大气压的压力计以及测量低于大气压的真空计。
电容式压力传感器的电容量是由电极面积和两个电极间的距离决定,因灵敏度高、温度稳定性好、压力量程大等特点近来得到了迅速发展。
在数控机床中,可用它对工件夹紧力进行检测,当夹紧力小于设定值时,会导致工件松动,系统发出报警,停止走刀。
另外,还可用压力传感器检测车刀切削力的变化。
再者,它还在润滑系统、液压系统、气压系统被用来检测油路或气路中的压力,当油路或气路中的压力低于设定值时,其触点会动作,将故障信号送给数控系统。
8 温度的检测 温度传感器是一种将温度高低转变成电阻值大小或其它电信号的一种装置。
常见的有以铂、铜为主的热电阻传感器、以半导体材料为主的热敏电阻传感器和热电偶传感器等。
在数控机床上,温度传感器用来检测温度从而进行温度补偿或过热保护。
在加工过程中,电动机的旋转、移动部件的移动、切削等都会产生热量,且温度分布不均匀,造成温差,使数控机床产生热变形,影响零件加工精度,为了避免温度产生的影响,可在数控机床上某些部位装设温度传感器,感受温度信号并转换成电信号送给数控系统,进行温度补偿。
此外,在电动机等需要过热保护的地方,应埋设温度传感器,过热时通过数控系统进行过热报警。
9 刀具磨损的监控 刀具磨损到一定程度会影响到工件的尺寸精度和表面粗糙度,因此,对刀具磨损要进行监控。
当刀具磨损时,机床主轴电动机负荷增大,电动机的电流和电压也会变化,功率随之改变,功率变化可通过霍尔传感器检测。
功率变化到一定程度,数控系统发出报警信号,机车停止运转,此时,应及时进行刀具调整或更换。
10 结束语 以上介绍的传感器在数控机床上的应用是目前的状况,但随着传感器和数控机床的发展,有些传感器将被淘汰,如旋转变压器等,而新的传感器将不断出现,会使数控机床更加完善,自适应更强。
c语言实验报告心得
c语言实验心得:1、只有频繁用到或对运算速度要求很高的变量才放到data区内,如for循环中的计数值。
2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区。
3、常量放到code区,如字库、修正系数。
4、逻辑标志变量可以定义到bdata中。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。
这样可以大大降低内存占用空间。
定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。
当然静态局部变量除外,其内存使用方式与全局变量相同;6、确保程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。
函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。
这一点Keil做得很愚蠢,但也没办法。
7、如果想节省data空间就必须用large模式。
将未定义内存位置的变量全放到xdata区。
当然最好对所有变量都要指定内存类型。
8、使用指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。
如指针p是指向data区,则应定义为: char data *p;。
还可指定指针本身的存放内存类型,如:char data * xdata p;。
其含义是指针p指向data区变量,而其本身存放在xdata区。
以前没搞过C51,大学时代跟单片机老师的时候也是捣鼓下汇编,现在重新搞单片机,因为手头资料不多,找到一些C51的程序,发现里面有这些关键字,不甚明了,没办法只好找了下,发现如下描述:从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。
与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。
在51系列中data,idata,xdata,pdata的区别data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。
这个比较特殊,而且C51好象有对此BUG,建议少用。
但也有他的优点,具体用法属于中级问题,这里不提。
三、有关单片机ALE引脚的问题 单片机不访问外部锁存器时ALE端有正脉冲信号输出,此频率约为时钟振荡频率的1\\\/6.每当访问外部数据存储器是,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲.这句话是不是有毛病.我觉得按这种说法,应该丢失3个ALE脉冲才对,我一直想不通是怎么回事,希望大虾们帮帮我.小弟感激涕零.答:其他所有指令每6个机器周期发出一个ALE,而MOVX指令占用12个机器周期只发出一个ALE 四、如何将一个INT型数据转换成2个CHAR型数据
经keil优化后,char1=int1\\\/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一样的。
五、在KEIL C51上仿真完了,怎样生成HEX文件去烧写
右键点项目中Target 1,选第二个,在OUTPUT中选中CREAT HEX 六、typedef 和 #define 有何不同?? typedef 和 #define 有何不同》》》 如typedef unsigned char UCHAR ;#define unsigned char UCHAR ;typedef命名一个新的数据类型,但实际上这个新的数据类型是已经存在的,只不过是定义了一个新的名字.#define只是一个标号的定义.你举的例子两者没有区别,但是#define还可以这样用#define MAX 100#define FUN(x) 100-(x)#define LABEL等等,这些情况下是不能用typedef定义的 七、请问如何设定KELC51的仿真工作频(时钟) 用右键点击左边的的target 1,然后在xtal一栏输入 八、不同模块怎样共享sbit变量,extern不行? 把SBIT定义单独放到一个.H中,每个模块都包含这个.h文件 九、C51中对于Px.x的访问必须自己定义吗
是的。
如sbit P17 = 0x97;即可定义对P1.7的访问 十、SWITCH( )语句中表达式不可以是位变量对吗
可以用位变量:#include#includevoid main(){bit flag;flag=0;switch(flag){case '0':{printf(0\\\ );break;}case '1':{printf(1\\\ );break;}default:break; }}bit 变量只有两种状态,if 语句足够啦,!!! 十一、const常数声明占不占内存 const 只是用来定义“常量”,所占用空间与你的定义有关,如:const code cstStr[] = {abc};占用代码空间;而如:const char data cstStr[] = {abc};当然占用内存空间。
另外,#define 之定义似乎不占用空间。
十二、philips的单片机P89C51RD+的扩展RAM在C51中如何使用
试一试将auxr.1清0,然后在c语言中直接声明xdata类型的变量 十三、BUG of Keil C51 程序中用如下语句:const unsigned char strArr[] = {数学};结果发现strArr[] 内容为 {0xCA,0xD1,0xA7},真奇怪
凡是有0xfd,则会通通不见了,所以只能手工输入内码了,例如 uchar strArr[]={0xCA,0xfd,0xd1,0xa7}(用Ultraedit会很方便)。
十四、Keil C51中如何实现代码优化
菜单Project下Option for target Simulator的C51.看到Code optimization了吗
十五、请教c的
和 ~ 符号有甚区别
是逻辑取反,~是按位取反。
十六、c51编程,读端口,还要不要先输出1
我怎么看到有的要,有的不要,请高手给讲讲,到底咋回事
谢了要输出1的,除非你能保证之前已经是1,而中间没有输出过其他值。
十七、当定时器1(T1)用于产生波特率时,P3^5还是否可以用作正常的I\\\/O口呢
p3.5完全可以当普通的io使用 十八、C51中 INT 转换为 2个CHAR
各位高手:C51中 INT 转换为 CHAR 如何转换诸如:X = LOW(Z);Y = HIGH(Z);答: x=(char)z;y=(char)(z>>8); 十九、如果我想使2EH的第7位置1的话,用位操作可以吗
现在对位操作指令我一些不太明白请各位多多指教:如 SETB 07H 表示的是20H.7置1,对吗
(我在一本书上是这么看到的)那么如果我想使2EH的第7位置1的话,象我举的这个例子怎么表示呢
谢谢
SETB 77Hsetb (2eh-20h)*8+7 20h-2fh每字节有8个可位操作(00h-7fh),其它RAM不可位直接操作 二十、char *addr=0xc000 和char xdata *addr=0xc000有何区别
char *addr=0xc000;char xdata *addr=0xc000;除了在内存中占用的字节不同外,还有别的区别吗?char *addr=0xc000; 是通用定义,指针变量 addr 可指向任何内存空间的值;char xdata *addr=0xc000; 指定该指针变量只能指向 xdata 中的值;后一种定义中该指针变量(addr)将少占用一个存储字节。
uchar xdata *addr=0xc000;指针指向外ram;如果:data uchar xdata *addr=0xc000;指针指向外ram但指针本身存在于内ram(data)中以此类推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;data uchar idata *addr=0xa0;......... 二十一、while(p1_0)的执行时间
假设,P1_0为单片机P1口的第一脚,请问,while(P1_0){P1_0=0;}while(!P1_0){P1_0=1;}以上代码,在KEIL C中,需要多长时间,执行完。
能具体说明while(P1_0)的执行时间吗
仿真运行看看就知道了,我仿真了试了一下,约14个周期 二十二、怎样编写C51的watchdog程序
各位大虾,我用KEIL C51 编写了一个带外部开门狗的程序,可程序无法运行起来,经过查找,发现程序在经过C51编译后,在MAIN()函数的前部增加了一端初始化程序,等到进入主程序设置开门狗时,开门狗已经时间到,将我的程序复位了,请问我怎样才能修改这一端初始花程序,使他一运行,就设置开门狗
可以在startup.a51中加入看门狗刷新指令,当然用汇编,然后重新编译startup.a51,将他和你的程序连接即可。
新的startup.a51会自动代替系统默认的启动模块。
二十三、keil C51 怎样把修改的startup.a51 加到工程文件中 直接加入即可注意不要改动?STACK,?C_START,?C_STARTUP等符号。
startup.a51直接加入项目,不用修改也可。
可在内面自己修改汇编的一些限制或堆栈指针。
二十四、关于波特率的设置 我在设定串口波特率时发现一个问题:在晶体震荡器为11.0592MHz时,若设9600BPS的话,TH1=0XFD,TL1=0XFD,而要设19200BPS的话,TH1、TL1有否变化,如果没变,为什么
如果变了,又为什么
(因为我看书上俩个是一样的),希望大家点拨。
答:当电源控制寄存器(PCON)第BIT7(SMOD)为1时波特率加倍。
TH1和TL1的值不变. 二十五、如何在C中声明保留这部分RAM区不被C使用
我不知道在C源程序中怎么控制这个,但在汇编程序中加入下面一段就行:DSEG AT 20HAA: DS 10这样C51就不会占用20H--29H了或者在c51里这样定义:uchar data asm_buff[10] _at_ 0x20; 二十六、问浮点运算问题 我在用C51时发现它对传递浮点参数的个数有限制,请问:1)参数是以全局变量的形式传递的,请问以全局变量的形式传递的参数也有限制吗
2)这种传递浮点参数的限制有多少呢
3)float*float的结果是float类型还是double类型?能否直接赋值给float类型的变量
答:由于KEIL C51的参数传递是通过R0-R7来传递的,所以会有限制。
不过KEIL提供了一个编译参数,可以支持更多参数的传递。
具体的内容见KEIL的PDF文档。
我建议你把多个要传递的参数定义到指针或结构体中去,传递参数通过指针或结构进行,这样好一些。
第3个问题回答是YES,你自己试试不就知道了。
二十七、如何在某一个地址定义ram 用_at_ 命令,这样可以定位灵活一点的地址uchar xdata dis_buff[16] _at_ 0x6020 ;\\\/\\\/定位RAM将dis_buff[16]定位在0x6020开始的16个字节 二十八、keil c中,用什么函数可以得到奇偶校验位
例如32位数据,将四个字节相互异或后检查P即可,若耽心P被改变,可用内嵌汇编。
#include unsigned char parity(unsigned char x){x^=x;if(P)return(1);else return(0);}unsigned char parity2(unsigned int x){#pragma asmmov a,r7xrl ar6,a#pragma endasmif(P)return(1);else return(0);}
DMX512控制原理是什么
DMX512协议DMX512协议最先是由USITT(美国剧院技术协会)发展成为从控制台用标准数字接口控制调光器的方式。
DMX512超越了模拟系统,但不能完全代替模拟系统。
DMX512的简单性、可靠性(假如能够正确安装和使用的话
)以及灵活性使其迅速成为资金允许情况下选择的协议,除了调光器外,一系列不断增长的控制设备就是证据。
DMX512仍然是科学上的一个新领域,具有在规则基础上产生的各种奇妙技术。
EIA485(RS485) DMX512是围绕工业标准EIA485接口设计的。
EIA485属于接口、电压、电流等的“电”端。
系统是基于沿着屏蔽导体双绞线的向下对称发送而建立的。
这种缠绕结构确保所产生的干扰会同样地作用于两个信号,因此保证了一致的数字定相。
所用的导线应该是由一条或两条双绞线、箔片和编织筛所构成的合适的数据导线。
对称音频导线则不能完成这个工作。
通常地,就如任何网段一样,导线两头应该有两个终端。
灯光控制台通常在一头作为终端,而另一头应该只有一个120Ω的电阻。
EIA485规范只支持“雏菊链”或每段上最多以32个“单元负载”所构成的串行网络。
制造商声称每段可以长达1000m。
但是,要特别指出的是,中继器的作用应该考虑到700m或800m左右,这样可以防止环境的异常。
XLR连接器的针口分配(表1) 针 线 信号 1屏蔽 地\\\/0伏 2内部导体(黒) 数据– 3内部导体(白) 数据+ 4内部导体(绿) 备用数据- 5内部导体(红) 备用数据+ DMX512控制线采用5针XLR(有时候是3针)连接设备(如表1);母接口适用于发送器,而公接口适用于接收器。
规范中建议用一条两对导线(4个连接口)来实现屏蔽,虽然只是需要其中一对。
第二对导线用于未指定的可选场合中。
必须注意的是一些调光器使用这些线来指示故障和状态信息。
如果调光器用第二个信道,则需要专门配置的分路器和中继器。
把线连接到逻辑电平最安全的方法是使用一个“标准”接口IC—TexasInstruments的SN75176B,如果要实现连接以及隔离,Burr-Brown的ISO485P是好的选择。
使用这些接口方法为每个设备提供一个额定的单元负载,这些设备都允许在段上最多安装32个接收器。
不推荐通过直接横跨线路来连接高灵敏度光隔离器的直接联机接口方式,它所提供的负载会比正常接收器的负载大5倍左右,从而减少了在段上可安装的接收器数目。
另外还会引起失真,增大出错率并导致符合EIA485的接收器出现故障,这些都是坏消息
资料 资料发送基于一种8位异步串行协议,带一个开始位(低电平)和两个停止位(高电平),没有奇偶校验。
因此一个资料帧有11位元。
由于每一位的宽度是4祍,所以发送一个帧需要44祍的时间。
如果线路要发送一个连续的数据流,则会产生250000b\\\/s的资料率,或称250k波特。
8位字对于每个调光器允许以0到255的范围来发送256个独立级别。
开始位和停止位用于使发送器和接收器同步。
资料线通常处于高电平;实际上它空闲时会处于高电平状态(更多的是处于这种状态)。
开始位的出现促使接收器投入工作,后面的8位元资料被扫描且被译码(希望如此)。
然后接收器等待停止位到来,停止位过后会再次出现这个过程。
我们需要停止位有两个理由:让接收器有充分的时间处理输入的资料;让线路处于高电平的状态,这样下一个“开始”才能被检测到。
图1描述了一个帧里面的位电平,这个帧中含有资料“0”和“255”。
迄今为止已经解释得很清楚了,但是还没有完,DMX512最多可支持512个调光器,现在我们只看到了第1个,那么怎样为所有的调光器处理资料呢
答案是简单的,只是不断重复这个过程
好的,就是那么简单。
不过现在的情况可不是那么简单了,我们在段上取得了一个数据流,但是没有办法辨别哪一帧是属于哪一个调光器的。
看“DMX包”部分的提示。
DMX512“包”DMX512包是这个标准的核心,它由一个包含深层同步信息的帧集合构成,其中的深层信息也就是一个“Break”和一个“Mark-after-break”。
就是这个信息使接收器能够检测到一个帧的开始,因此能够处理接收到的资料。
帧定时检验显示了线路处于低电平的最长时间是4祍(开始位)+8×4祍(资料位)=36祍,但是一个“Break”包含至少88祍的“低电平”,这两者的不同很容易被检测到,可用于调光器的同步。
Mark-after-break”在线路上是“高”状态,至少8祍时间的宽度,“Mark-after-break”是必需的,因为这样才能检测到“Break”,否则帧的开始位会紧随“Break”,使线路一直陷入低电平状态。
此时将会非常混乱
一个描述“包”的图2有助于说明以上问题。
“0”数值表示后面的帧包含调光器级别的信息。
另外的255个代码在规范中没有定义,但是一些制造商却使用了其它代码来发送产品的特殊信息。
一个接收了非零开始码的调光器“将会”忽略包余下的部分,不过要小心,它不会总被检验到
定时总结(表2)最小 最大Break 88μs1秒Mark-after-break 8μs1秒Inter-frame-time 0μs1秒“Inter-frame-time”用于减低资料率。
有些调光器不能处理高速运行的资料,或者在控制台处理其它任务的同时用于“插入”发送过程。
它的数值可以在0到1秒之间。
规范中对于定时设置了一些限制。
从表2可以看出,资料率有很大的扩展性,但是要注意的是,不允许线路状态持续处于“高”或“低”状态超过一秒的时间,而且此时应该考虑出错的条件。
差不多DMX512系统中出现的所有误操作都是源于系统知识的缺乏。
引起问题的一个地方是在信号分离中。
记住,系统以段终结的方式运行。
简单地把线路分离(看上去是符合逻辑的)会由于欧姆量的反复变化而不能工作。
这样做容易导致信号的破坏。



