1 引言
SERCOS总线是一种连接运动控制器与驱动器的运动控制总线。它出现的较晚,但一面世便受到世界各种设备供应商的广泛关注。SERCOS总线特有的开放性、同步性与抗干扰性有力支持了目前各先进工业国家对开放式数控系统的研究与应用,因此其协议很快便被采纳为国际标准。2002年中国也正式颁布了SERCOS协议的国家标准。在此之前,SERCOS总线已被应用于实践,如今全球有70多家公司能提供带有SERCOS接口的数字产品,国外生产的各类印刷机、食品包装机、装配机器人、半导体加工设备、纺织机及其它具有特殊用途的机器中也不乏SERCOS总线的应用。因内也开始尝试应用这一后起之秀,相关的研究也在日益增多。文中从应用角度,结合笔者实际使用中的经验,着重介绍一款主流的SERCOS总线控制器一SERCON816,希望能借此对国内数控技术的发展起到抛砖引玉的作用。
2 SERCON816简介
SERCON816是由欧洲SERCOS协会推出的第二代SERCOS总线控制器。该芯片集成了SERCOS总线的数据链路层,通过设定片内寄存器和读写结构化的双口RAM便可实现总线的通讯。这款芯片报文处理的时钟频率最大可达16MHz,即可在最短为62.5μs的固定周期内实现一主多从的环形通讯。SERCON816资源丰富,功能强大,内部有43个16位的控制寄存器、2kB的双口RAM、2个外部中断引脚、34个内部中断源、1个看门狗定时器及DMA控制器。另外,该电路的接口方式也灵活多样,与微处理器互联的总线宽度即可为8位,也可为16位;读/写控制的模式既可遵循Intel标准,也可遵循Motorola标准。而串行接口的通讯也可选用光纤或电缆来实现。SERCON816的内部功能结构如图1所示。
3 SERCON816的应用
3.1 SERCON816与微处理器的接口
SERCON816以总线的形式与微处理器接口。总线操作有两种模式,第一种是总线分离模式。在该模式下,数据总线上只传递数据,地址总线上只传递地址;第二种是总线复用模式。此时,对于片外数据总线而言,既传递数据也传递地址,不过,在芯片内部通过地址锁存器将二者分开了,具体说明见表1。
表1 SERCON816与微处理器接口
ADMUX 0 总线分离模式
1 总线复用模式
BUSWIDTH 0 数据总线宽度为8位
1 数据总线宽度为16位
A0 A0、BHEN=00,数据总线有效位D0-D15;A0、BHDEN=01,为D0-D7;A0、BHEN=DIR=1,D0-D7代表高字节,D8-D15代表低字节
BHEN
BYTEDIR 16位数据总线 BYTEDIR=0,D0-D7代表低字节,D8-D15代表高字节,BYTEDIR=1,D0-D7代表高字节,D8-D15代表低字节
8位数据总线 BYTEDIR=0时,A0=0传递低字节,A0=1传递高字节,BYTEDIR=1时,A0=0传递高字节,A0=1传递低字节
在总线分离模式下,首先要将BUSWIDTH置1,以选择16位宽的数据总线。然后将A0、BHEN都接地,使数据总线16位均有效。还要注意BYTEDIR的选择,由于内部寄存器或RAM单元都是16位的,分离、低二个字节,当BYTEDIR=0时,数据总线上传送的低8位数据作为低字节存入,高8位数据作为高字节存入;而当BYTEDIR=1时,低8位数据作为高字节存入,高8位数据作为低字节存入。通常情况下,将BYTEDIR接地。
总线复用模式主要是为了与8位微处理器进行接口。在这种模式下,片外数据总线首先传送地址信号,稳定后,打开内部锁存器将地址输入到内部地址总线,随后锁存器关闭,将地址锁存,最后再从片外数据总线将8位数据传入内部数据总线。由于内部寄存器或RAM单元由高、低二个字节构成,读/写时总是一个字节一个字节的进行,次序由BYTEDIR的设写与A0的变化来确定。值得注意的是,当与Motorola微处理器或8051系列微处理器进行接口时,BYTEDIR通常被设为1;而当与非8051系列的其它Intel微处理器接口时,BYTEDIR通常被设为0。
SERCON816总线的读写控制可选用Intel或Motorola二种标准之一,具体说明见表2。
表2 读写操作的标准说明
BUSMODEO BUSMODE1 标准 WRN RDN
0 X Intel WRN RDN
1 0 Motorola R/WN 低电平WRN有效
1 1 Motorola R/WN 高电平WRN有效
当BUSMODE0为0时,采用Intel标准。此时,若WRN为低、RDN为高,进行写操作;若RDN为低、WRN为高,进行读操作。当BUSMODE0=1时,采用Motorola标准,只有在这种标准下,BUSMODE1才有意义。如果此时的BUSMODE1=0,说明当控制线RDN上出现低电平时,控制线WRN的控制信号有效;而如果BUSMODE1=1,说明当控制线RDN上出现高电平时,控制线WRN的控制信号有效。当WRN有效时,高电平表示读,低电平表示写。
SERCON816内部有2048字的双口RAM和大量的控制寄存器。由于对它们访问的地址上有重叠,所以必须事先确认访问的是双口RAM还是控制寄存器。当MCSN0=0,MCS=1时,对RAM进行读写操作;而当PCSN0=0,PCS1=1时,则对寄存器进行读写操作。[page]
3.2 时钟与复位
SERCON816需要二个时钟。一个由SCLK引脚输入,作为基准源;另一个由MCLK引脚输入,用于报文处理。作为新一代的SERCOS接口控制器,为了能够很好地与上一代控制器兼容,SERCON816提供了一个可选的设置引脚SBAUD16。通常,将SBAUD16接5V电源,可使SERCON816工作在兼容模式下。注意:SCLK最高输入频率为64MHz,MCLK输入频率在12MHz~64MHz之间。
SERCON816有硬件复位和软件复位二种方式。硬件复位是通过在RSTN引脚上加一个宽度不小于50ns的负脉冲来完成。不过,在非兼容模式下或掉电复位时,负脉冲的宽度不应小于10ms。此外,还要注意在复位电路中加上具有低通滤波器特性的电路以防止毛刺噪声的干扰。软件复位则是通过向SERCON816的控制寄存器SWRST位写1来完成。如果SERCON816未能正常复位,则可以通过软件进行复位。
3.3 通信波特率的设置
波特率也可通过硬件或软件来设置。寄存器ENTSBAUD决定着波特率的设置方式。当ENTSBAUD=0时,通常硬件设置;而当ENTSBAUD=1时,通过软件设置,具体见表3,此表是在fmclk=64MHz时的波特率选择。
表3 通信波特率的设置
ENTSBAUD SBAUD SBAUD16 SWSABUD SWSBUAD16 波特率
0 1 1 X X 2M(fsclk/32)
0 0 1 X X 4M(fsclk/16)
1 X 1 1 X 2M(fsclk/32)
1 X 1 0 X 4M(fsclk/16)
0 1 0 X X 8M(fsclk/8)
0 0 0 X X 16M(fsclk/4)
1 X 0 1 1 2M(fsclk/32)
1 X 0 0 1 4M(fsclk/16)
1 X 0 1 0 8M(fsclk/8)
1 X 0 0 0 16M(fsclk/4)
当芯片工作在与SERCON410B兼容的模式下时,如果选择硬件设置波特率则控制寄存器SWSBAUD和SWSBAUD16无效,此时,可以通过引脚SBAUD选择2MHz或4MHz的波特率;如果选择软件设置波特率,则引脚SBAUD无效,此时,可以通过寄存器SWSBAUD选择2MHz或4MHz的波特率。同理,可设置非兼容模式下的波特率。
实际应用中,会出现波特率的实际值与设置值不相等的情况。造成这种情况的实际值与设置值不相等的情况。造成这种情况的原因可能是由于信号变形过大或通讯回路堵塞。此时,在SERCON816内部会产生相同的中断和错误标志,用户由此可以判断错误产生的原因。在通信正常以后,错误标志会自动复位,而中断标志则必须通过软件来清除。
3.4 输入/输出引脚的设置
SERCOS总线一般采用光通讯的方式,以提高抗干扰能力。接口的光电转换通过光电接头自动完成。为了能调节输出电流的大小,使得输出信号具有不同的驱动能力,SERCON816提供了6个输出引脚。这样便可以通过使能输出引脚的多少来调节输出电流的大小。通常将6根输出引脚并联起来,可以得到60mA的最大静态输出电流和120mA的最大动态输出电流。另外还需在每一根输出引脚上外接一个电阻器和并联一个RC电路,其目的是来用电阻器传递静态电流,利用RC电容来稳定信号快速变化时产生的动态电流。
SERCON816与51单片机接口连接如图2所示。
3.5 软件设计
软件设计主要集中在对SERCON816进行初始化。初始化主要包括:RAM报文数据初始化、硬件配置初始化和通讯初始化。其流程图如图3所示。
硬件配置初始化和通讯初始化主要通过设置控制寄存器中的相应位来完成,推荐的寄存器配置见表4,而RAM的初始化则是按照电路要求的数据结构在RAM开辟特定的数据空间。
表4 控制寄存器的配置
硬件配置寄存器参数 REGMODE 1 报文处理寄存器参数 ENTMT 1
SYNCWR 1 COMBLK0 0
TXDMODE 0 COMBLK1 0
ENTXD1_6 111111B PHASO 1
TMODE0_2 111B PHAS1 2
REG_06H 0008H MSTTCHK 0
REG_07H 0001H
REG_09H 0223H
REG-08H 4100H
通讯寄存器参数 REG_09H 1 MCLKST 6
ENTSBAUD 0 TCNTST 2
SWBAUD 1 JTSYC1 -1
MSTEN 0 JTSCYC2 6
REPON 1 TSCYC0 1000
MCLKDIV 15 PHAS12 1
4 结束语
SERCON816是实现SERCOS通讯的核心电路,使SERCOS总线在国际数控领域得到了很好的应用。笔者近一二年通过对SERCOS总线的研究,在实际的开发过程中深感此芯片的重要性,希望上述心得能为国内相关人士的深入研究提供一个参考。
关键字:SERCON816 SERCOS 线控制器
引用地址:SERCON816型SERCOS总线控制器及其应用
SERCOS总线是一种连接运动控制器与驱动器的运动控制总线。它出现的较晚,但一面世便受到世界各种设备供应商的广泛关注。SERCOS总线特有的开放性、同步性与抗干扰性有力支持了目前各先进工业国家对开放式数控系统的研究与应用,因此其协议很快便被采纳为国际标准。2002年中国也正式颁布了SERCOS协议的国家标准。在此之前,SERCOS总线已被应用于实践,如今全球有70多家公司能提供带有SERCOS接口的数字产品,国外生产的各类印刷机、食品包装机、装配机器人、半导体加工设备、纺织机及其它具有特殊用途的机器中也不乏SERCOS总线的应用。因内也开始尝试应用这一后起之秀,相关的研究也在日益增多。文中从应用角度,结合笔者实际使用中的经验,着重介绍一款主流的SERCOS总线控制器一SERCON816,希望能借此对国内数控技术的发展起到抛砖引玉的作用。
2 SERCON816简介
SERCON816是由欧洲SERCOS协会推出的第二代SERCOS总线控制器。该芯片集成了SERCOS总线的数据链路层,通过设定片内寄存器和读写结构化的双口RAM便可实现总线的通讯。这款芯片报文处理的时钟频率最大可达16MHz,即可在最短为62.5μs的固定周期内实现一主多从的环形通讯。SERCON816资源丰富,功能强大,内部有43个16位的控制寄存器、2kB的双口RAM、2个外部中断引脚、34个内部中断源、1个看门狗定时器及DMA控制器。另外,该电路的接口方式也灵活多样,与微处理器互联的总线宽度即可为8位,也可为16位;读/写控制的模式既可遵循Intel标准,也可遵循Motorola标准。而串行接口的通讯也可选用光纤或电缆来实现。SERCON816的内部功能结构如图1所示。
3 SERCON816的应用
3.1 SERCON816与微处理器的接口
SERCON816以总线的形式与微处理器接口。总线操作有两种模式,第一种是总线分离模式。在该模式下,数据总线上只传递数据,地址总线上只传递地址;第二种是总线复用模式。此时,对于片外数据总线而言,既传递数据也传递地址,不过,在芯片内部通过地址锁存器将二者分开了,具体说明见表1。
表1 SERCON816与微处理器接口
ADMUX 0 总线分离模式
1 总线复用模式
BUSWIDTH 0 数据总线宽度为8位
1 数据总线宽度为16位
A0 A0、BHEN=00,数据总线有效位D0-D15;A0、BHDEN=01,为D0-D7;A0、BHEN=DIR=1,D0-D7代表高字节,D8-D15代表低字节
BHEN
BYTEDIR 16位数据总线 BYTEDIR=0,D0-D7代表低字节,D8-D15代表高字节,BYTEDIR=1,D0-D7代表高字节,D8-D15代表低字节
8位数据总线 BYTEDIR=0时,A0=0传递低字节,A0=1传递高字节,BYTEDIR=1时,A0=0传递高字节,A0=1传递低字节
在总线分离模式下,首先要将BUSWIDTH置1,以选择16位宽的数据总线。然后将A0、BHEN都接地,使数据总线16位均有效。还要注意BYTEDIR的选择,由于内部寄存器或RAM单元都是16位的,分离、低二个字节,当BYTEDIR=0时,数据总线上传送的低8位数据作为低字节存入,高8位数据作为高字节存入;而当BYTEDIR=1时,低8位数据作为高字节存入,高8位数据作为低字节存入。通常情况下,将BYTEDIR接地。
总线复用模式主要是为了与8位微处理器进行接口。在这种模式下,片外数据总线首先传送地址信号,稳定后,打开内部锁存器将地址输入到内部地址总线,随后锁存器关闭,将地址锁存,最后再从片外数据总线将8位数据传入内部数据总线。由于内部寄存器或RAM单元由高、低二个字节构成,读/写时总是一个字节一个字节的进行,次序由BYTEDIR的设写与A0的变化来确定。值得注意的是,当与Motorola微处理器或8051系列微处理器进行接口时,BYTEDIR通常被设为1;而当与非8051系列的其它Intel微处理器接口时,BYTEDIR通常被设为0。
SERCON816总线的读写控制可选用Intel或Motorola二种标准之一,具体说明见表2。
表2 读写操作的标准说明
BUSMODEO BUSMODE1 标准 WRN RDN
0 X Intel WRN RDN
1 0 Motorola R/WN 低电平WRN有效
1 1 Motorola R/WN 高电平WRN有效
当BUSMODE0为0时,采用Intel标准。此时,若WRN为低、RDN为高,进行写操作;若RDN为低、WRN为高,进行读操作。当BUSMODE0=1时,采用Motorola标准,只有在这种标准下,BUSMODE1才有意义。如果此时的BUSMODE1=0,说明当控制线RDN上出现低电平时,控制线WRN的控制信号有效;而如果BUSMODE1=1,说明当控制线RDN上出现高电平时,控制线WRN的控制信号有效。当WRN有效时,高电平表示读,低电平表示写。
SERCON816内部有2048字的双口RAM和大量的控制寄存器。由于对它们访问的地址上有重叠,所以必须事先确认访问的是双口RAM还是控制寄存器。当MCSN0=0,MCS=1时,对RAM进行读写操作;而当PCSN0=0,PCS1=1时,则对寄存器进行读写操作。[page]
3.2 时钟与复位
SERCON816需要二个时钟。一个由SCLK引脚输入,作为基准源;另一个由MCLK引脚输入,用于报文处理。作为新一代的SERCOS接口控制器,为了能够很好地与上一代控制器兼容,SERCON816提供了一个可选的设置引脚SBAUD16。通常,将SBAUD16接5V电源,可使SERCON816工作在兼容模式下。注意:SCLK最高输入频率为64MHz,MCLK输入频率在12MHz~64MHz之间。
SERCON816有硬件复位和软件复位二种方式。硬件复位是通过在RSTN引脚上加一个宽度不小于50ns的负脉冲来完成。不过,在非兼容模式下或掉电复位时,负脉冲的宽度不应小于10ms。此外,还要注意在复位电路中加上具有低通滤波器特性的电路以防止毛刺噪声的干扰。软件复位则是通过向SERCON816的控制寄存器SWRST位写1来完成。如果SERCON816未能正常复位,则可以通过软件进行复位。
3.3 通信波特率的设置
波特率也可通过硬件或软件来设置。寄存器ENTSBAUD决定着波特率的设置方式。当ENTSBAUD=0时,通常硬件设置;而当ENTSBAUD=1时,通过软件设置,具体见表3,此表是在fmclk=64MHz时的波特率选择。
表3 通信波特率的设置
ENTSBAUD SBAUD SBAUD16 SWSABUD SWSBUAD16 波特率
0 1 1 X X 2M(fsclk/32)
0 0 1 X X 4M(fsclk/16)
1 X 1 1 X 2M(fsclk/32)
1 X 1 0 X 4M(fsclk/16)
0 1 0 X X 8M(fsclk/8)
0 0 0 X X 16M(fsclk/4)
1 X 0 1 1 2M(fsclk/32)
1 X 0 0 1 4M(fsclk/16)
1 X 0 1 0 8M(fsclk/8)
1 X 0 0 0 16M(fsclk/4)
当芯片工作在与SERCON410B兼容的模式下时,如果选择硬件设置波特率则控制寄存器SWSBAUD和SWSBAUD16无效,此时,可以通过引脚SBAUD选择2MHz或4MHz的波特率;如果选择软件设置波特率,则引脚SBAUD无效,此时,可以通过寄存器SWSBAUD选择2MHz或4MHz的波特率。同理,可设置非兼容模式下的波特率。
实际应用中,会出现波特率的实际值与设置值不相等的情况。造成这种情况的实际值与设置值不相等的情况。造成这种情况的原因可能是由于信号变形过大或通讯回路堵塞。此时,在SERCON816内部会产生相同的中断和错误标志,用户由此可以判断错误产生的原因。在通信正常以后,错误标志会自动复位,而中断标志则必须通过软件来清除。
3.4 输入/输出引脚的设置
SERCOS总线一般采用光通讯的方式,以提高抗干扰能力。接口的光电转换通过光电接头自动完成。为了能调节输出电流的大小,使得输出信号具有不同的驱动能力,SERCON816提供了6个输出引脚。这样便可以通过使能输出引脚的多少来调节输出电流的大小。通常将6根输出引脚并联起来,可以得到60mA的最大静态输出电流和120mA的最大动态输出电流。另外还需在每一根输出引脚上外接一个电阻器和并联一个RC电路,其目的是来用电阻器传递静态电流,利用RC电容来稳定信号快速变化时产生的动态电流。
SERCON816与51单片机接口连接如图2所示。
3.5 软件设计
软件设计主要集中在对SERCON816进行初始化。初始化主要包括:RAM报文数据初始化、硬件配置初始化和通讯初始化。其流程图如图3所示。
硬件配置初始化和通讯初始化主要通过设置控制寄存器中的相应位来完成,推荐的寄存器配置见表4,而RAM的初始化则是按照电路要求的数据结构在RAM开辟特定的数据空间。
表4 控制寄存器的配置
硬件配置寄存器参数 REGMODE 1 报文处理寄存器参数 ENTMT 1
SYNCWR 1 COMBLK0 0
TXDMODE 0 COMBLK1 0
ENTXD1_6 111111B PHASO 1
TMODE0_2 111B PHAS1 2
REG_06H 0008H MSTTCHK 0
REG_07H 0001H
REG_09H 0223H
REG-08H 4100H
通讯寄存器参数 REG_09H 1 MCLKST 6
ENTSBAUD 0 TCNTST 2
SWBAUD 1 JTSYC1 -1
MSTEN 0 JTSCYC2 6
REPON 1 TSCYC0 1000
MCLKDIV 15 PHAS12 1
4 结束语
SERCON816是实现SERCOS通讯的核心电路,使SERCOS总线在国际数控领域得到了很好的应用。笔者近一二年通过对SERCOS总线的研究,在实际的开发过程中深感此芯片的重要性,希望上述心得能为国内相关人士的深入研究提供一个参考。
上一篇:现场总线杂谈
下一篇:基于SPI总线和ADE77xx专用芯片的三相多功能电度表的原理与应用
推荐阅读最新更新时间:2024-05-02 22:24
飞思卡尔推出面向软件工程师的汽车微控制器产品线S32K MCU
采用ARM Cortex 技术的新汽车架构实现了软件和硬件可扩展性,通过面向未来的特性和最佳的软件复用加快开发 2015年6月23日,德克萨斯州奥斯汀(2015年飞思卡尔技术论坛)讯-随着新汽车中芯片内容和复杂性的不断增加,未来的汽车发展对软件愈发依赖。新汽车通常集成了超过1亿行内置代码,比大多数民用客机的代码数量还要多。虽然软件带来了令人兴奋的创新机会,但同时也增加了复杂性,催生了大量的代码维护和上市速度挑战。因此,汽车电子供应商现在投入到软件领域的开发资源超过了在硬件方面的开发资源。 为了应对这些挑战,飞思卡尔半导体推出了首个旨在大大加快和简化软件开发的汽车微控制器产品线S32K。S32K基于广泛采用的
[单片机]
12864(st7920控制器)画点、线子程序
/*------------------ 画点子程序 -----------------------------*/ //X Y为预想的坐标系(X:0-127,Y:0-63 按格算),Color 0灭,1亮,2翻转 void DrawPoint(unsigned char X,unsigned char Y,unsigned char Color) { unsigned char Row,Tier,Tier_bit ; unsigned char ReadOldH,ReadOldL ; wr_comm(0x34); // 选扩充指令 并关显示 wr_comm(0x36); // 选扩充指令,开显示 Tier=X
[单片机]
恩智浦、地平线、映驰科技合作推出DCU3.0行泊一体域控制器
11月15日,盖世汽车获悉,恩智浦(NXP)、地平线与映驰科技携手合作,成功研发灵活、可扩展、平台化的DCU3.0行泊一体域控制器解决方案,并顺利进入量产准备阶段。 图片来源:映驰科技 图片来源:映驰科技 据悉,DCU3.0行泊一体域控制器解决方案基于NXP车载网络处理器S32G、地平线高性能车规级AI芯片征程3以及映驰科技高性能计算软件平台EMOS打造,满足了市场在高低速智能驾驶融合ONE-BOX的需求趋势。 具体来看,硬件方面,该方案基于NXP S32G车载网络处理器,可提供高效、实时和安全的应用网络处理,以及符合ISO26262 ASIL-D的路径规划和实时车控算力。与此同时,基于地平线征程3车规级AI芯
[汽车电子]
小广播
热门活动
换一批
更多
最新嵌入式文章
更多热门文章
更多每日新闻
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
更多往期活动
11月17日历史上的今天
厂商技术中心