CN216817207U - 一种编码控制器 - Google Patents

一种编码控制器 Download PDF

Info

Publication number
CN216817207U
CN216817207U CN202123447703.3U CN202123447703U CN216817207U CN 216817207 U CN216817207 U CN 216817207U CN 202123447703 U CN202123447703 U CN 202123447703U CN 216817207 U CN216817207 U CN 216817207U
Authority
CN
China
Prior art keywords
module
signal
data
port
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202123447703.3U
Other languages
English (en)
Inventor
王先通
马瑞
丁信忠
陈攀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Step Robotics Co ltd
Original Assignee
Shanghai Step Robotics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Step Robotics Co ltd filed Critical Shanghai Step Robotics Co ltd
Priority to CN202123447703.3U priority Critical patent/CN216817207U/zh
Application granted granted Critical
Publication of CN216817207U publication Critical patent/CN216817207U/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Electric Motors In General (AREA)

Abstract

本实用新型提供了一种编码控制器,该编码控制器包括RAM模块,RAM模块用于存储伺服电机的电机参数;计数模块,计数模块用于计算、统计和监测与伺服电机旋转相关的输入信号;MCU模块,MCU模块用于根据上位指令反馈电机参数和/或输入信号,还用于根据上位指令向RAM模块写入新的电机参数来更新电机参数。本实用新型提供的编码控制器通过并转串模块将并行ABZ信号转换成串行通讯信号的方法,计数模块(absa_abss_cnt)将ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断,将这些数据整合成松下协议可识别的信息元素传递给松下伺服,使其能带动编码控制器接口的电机工作。

Description

一种编码控制器
技术领域
本实用新型涉及到控制器技术领域,尤其涉及到一种编码控制器。
背景技术
松下伺服驱动器需要配套松下电机来使用,如果要用国产电机配套松下伺服,要解决接口不同的问题,松下编码器接口有5根线,±5v两根,GND一根,串行信号PS两根。而国产电机编码器输出的是ABZ信号。如果能解决这个接口转换的问题,那么松下伺服就可以带动编码器输出ABZ信号的其他电机,这样在使用上就会有不少便利。
实用新型内容
本实用新型提供了一种编码控制器,用以改善电机编码器接口转换的问题。
本实用新型提供了一种编码控制器,该编码控制器包括:
RAM模块,所述RAM模块用于存储伺服电机的电机参数;
计数模块,所述计数模块用于计算、统计和监测与所述伺服电机旋转相关的输入信号;
MCU模块,所述MCU模块用于根据上位指令反馈所述电机参数和/或所述输入信号,还用于根据所述上位指令向所述RAM模块写入新的电机参数来更新所述电机参数。
在一个具体的可实施方案中,还包括Uart接收模块,所述Uart接收模块用于接收所述上位指令并将所述上位指令发送至所述所述MCU模块。
在一个具体的可实施方案中,还包括Uart发送模块,所述Uart发送模块用于将所述MCU模块的反馈信息发送至上位机。
在一个具体的可实施方案中,还包括CRC校验模块,所述CRC校验模块用于对所述Uart接收模块接收的所述上位指令的每一组数据帧以及所述Uart发送模块发送的所述反馈信息的每一组数据帧做CRC校验。
在一个具体的可实施方案中,还包括ROM模块,所述ROM模块用于存储所述MCU模块接收的所述上位指令。
在一个具体的可实施方案中,还包括波特率计算模块,所述波特率计算模块用于计算所述Uart接收模块接收的所述上位指令的信号频率以及所述Uart发送模块发送的所述反馈信息的信号频率。
在一个具体的可实施方案中,还包括中断控制模块,所述中断控制模块用于控制所述MCU模块信号接收和反馈的状态。
在一个具体的可实施方案中,还包括DCM模块,所述DCM模块用于使所述RAM模块、所述计数模块、所述MCU模块、所述Uart接收模块、所述Uart发送模块、所述CRC校验模块、所述ROM模块、所述波特率计算模块以及所述中断控制模块使用的工作频率一致。
在一个具体的可实施方案中,还包括并转串模块,所述并转串模块用于将所述编码控制器的并行ABZ信号转换成串行通讯信号。
在一个具体的可实施方案中,所述计数模块将所述编码控制器的ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断。
通过上述描述不难看出,本实用新型提供的编码控制器通过并转串模块将并行ABZ信号转换成串行通讯信号的方法,计数模块(absa_abss_cnt)将ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断,将这些数据整合成松下协议可识别的信息元素传递给松下伺服,使其能带动编码控制器接口的电机工作。
附图说明
图1为本实用新型实施例提供的编码控制器的电路图。
具体实施方式
为了使本实用新型的目的、技术方案和优点更加清楚,下面将结合附图对本实用新型作进一步地详细描述。
为了方便理解本实用新型实施例提供的编码控制器,首先说明一下其应用场景,该编码控制器应用于电机控制技术领域,用以改善电机编码器接口转换的问题。
本实用新型提供了一种编码控制器,如图1所示,该编码控制器包括RAM模块1、计数模块2、MCU模块3、Uart接收模块4、Uart发送模块5、CRC校验模块6、ROM模块7、波特率计算模块8、中断控制模块9、DCM模块10以及并转串模块。其中,RAM模块1用于存储伺服电机的电机参数;计数模块2用于计算、统计和监测与伺服电机旋转相关的输入信号,并且计数模块2将编码控制器的ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断;MCU模块3用于根据上位指令反馈电机参数和/或输入信号,还用于根据上位指令向RAM模块1写入新的电机参数来更新电机参数;Uart接收模块4用于接收上位指令并将上位指令发送至MCU模块3;Uart发送模块5用于将MCU模块3的反馈信息发送至上位机;CRC校验模块6用于对Uart接收模块4接收的上位指令的每一组数据帧以及Uart发送模块5发送的反馈信息的每一组数据帧做CRC校验;ROM模块7用于存储MCU模块3接收的上位指令;波特率计算模块8用于计算Uart接收模块4接收的上位指令的信号频率以及Uart发送模块5发送的反馈信息的信号频率;中断控制模块9用于控制MCU模块3信号接收和反馈的状态;DCM模块10用于使RAM模块1、计数模块2、MCU模块3、Uart接收模块4、Uart发送模块5、CRC校验模块6、ROM模块7、波特率计算模块8以及中断控制模块9使用的工作频率一致;并转串模块用于将编码控制器的并行ABZ信号转换成串行通讯信号。
在本申请实施方案中,并转串模块进行信号转换具体可以使用FPGA来实现,松下的通讯协议可以按照松下17位编码器设计参考说明书中的设计要求而设计,本编码控制器具体可以是分辨率为10000的增量式编码器。换言之,本编码控制器是以FPGA为平台而设计,具体使用的芯片是spartan3系列的XC3S50AN-4tqg144,使用的设计语言是VHDL。其主要功能有3个:
1)对输入的电机旋转相关信号a,b,z,cs1(U),cs2(V),cs3(W)作统计和检测,是和伺服通讯的主要数据内容;
2)对片外SPI-E2(S-93C66B)进行读写操作,该E2中保存的是电机参数。(注:该E2是16位的,而电机参数是8位的数据,有效电机参数保存在每个地址的低8位中);
3)和伺服进行通讯,通讯协议按照松下说明书所述,通讯内容为a,b,z,cs1,cs2,cs3信号的统计和检测数据以及对SPI-E2的读写命令。
参考表一,表一为本编码控制器的用户IO引脚定义表。下面我们将结合表一及图1对本编码控制器进行详细说明。
Figure BDA0003453554100000021
Figure BDA0003453554100000031
表一
如表一所示,本编码器控制器共有20个IO信号,这20个信号形成了本编码器控制器各的顶层结构,而顶层结构之下还包括了多个功能独立的模块,以完成各种特定功能。参考图1,有些信号旁边有小括号,其中标注“(bn)”,其表示数据宽度为1位的信号进入数据宽度为多位的信号或者数据宽度为多位的信号进入数据宽度为1位的信号时,1位信号是多位信号中的哪一位,其中“n”表示的是位数。还有一个信号需要重点说明一下,就是在picoblaze8位MCU模块,即processor模块中的port_id信号。processor作为MCU模块需要和其他模块通讯,从MCU角度来看其他模块是它的外设。它从in_port端口输入数据,从out_port端口输出数据,由于picoblaze是8位的MCU,于是in_port和out_port端口的数据宽度也是8位的,若要连接多个外设,或者要输入输出的数据宽度大于8位,则要对端口进行多次IO操作,每次IO操作的目的地都是不同的。port_id就是用来区分这些“目的地”的。picoblaze中用户能够定义的端口数,输入输出加起来总共255个,用十六进制表示即为00~FF,图中in_port和out_port所连接的信号旁的十六进制数即为port_id信号,port_id信号宽度为8位。每次输入输出的时候需要选择port_id号,以表明端口输入输出的方向。很明显,在各个模块中起中枢控制作用的是processor模块,其他各模块都围绕着它工作。参考图1,图1中还示出了六个输入输出直连的信号端,它们分别是a,b,z,cs1,cs2,cs3这六个输入信号的直接输出,输出的这六个信号是作为测试点使用的。以下将详细说明一下各个模块的功能。
RAM模块1,即图1中标识的ram_model,这是一个设定数据宽度为8、深度为80的RAM模块,用于存放SPI-E2的电机参数,由于SPI-E2的速度比较慢,系统上电时会将SPI-E2中所有80个电机参数全部读入RAM中,以满足通讯回复的速度要求。RAM模块共有5个端口,分别为:
Dina端口,8位输入信号,表示需要写入RAM的8位数据;
douta端口,8位输出信号,表示需要读出RAM的8位数据;
addra端口,7位输入信号,表示需要访问RAM的哪个地址;
wea端口,1位输入信号,写使能信号,“1”表示“写入数据”,“0”表示读出数据;
clka端口,1位输入信号,读写RAM的时钟信号,上升沿操作,根据wea信号的含义,做写入或读出的操作。
本申请中,RAM模块1可进行读操作和写操作,RAM模块1的最快读写速度可达到450MHZ。读操作时首先拉低wea信号,表示“读”,然后把需要读的数据的所在地址放到addra端口,最后制作一个clka信号的上升沿,这时,需要的数据已经输出在douta端口了;写操作时首先拉高wea信号,表示“写”,然后把需要写的数据和地址分别放到dina和addra端口,最后制作一个clka信号的上升沿,这时,数据就已经写入了。
计数模块2,又可以称为absa abss计数模块,即图1中标识的count_model。本模块是用于计算、统计和监测伺服电机旋转相关的输入信号,即伺服电机各个用于位置检测的输入信号。其中absa是单圈计数,abss是多圈计数。本编码器的位置检测精度为1万,也就是说absa的有效值从0~9999表示一圈中的一万个位置。ccw方向旋转时,absa向上计数,cw方向旋转时absa向下计数。而abss是一个17位的值,它的作用就是计脉冲数,方向与其无关,只要有一个位置变化,它就向上计数1,计数到17位的最大值之后就自动清零,重新计数。该模块还有一些错误检测的功能。本模块共有16个端口,分别为:
a&b端口,1位输入信号,a和b端口分别接收表示电机位置的a信号和b信号,a和b信号都是方波信号,其相位相差90度,由此可见在a相信号的一个周期中,a相和b相的组合信号会有4种状态,而马达旋转一圈,a相信号会发出2500个脉冲,于是一圈之中可以得出ab相信号的10000个状态;
z端口,1位输入信号,z端口是z信号的输入端口,z信号的作用是表示马达一圈之中的基准位置,马达旋转到这个位置的时候z信号为高电平,其它位置z信号为低电平,z信号的高电平将保持1万个位置中的两个位置长度,对应于absa的计数值就是0和9999这两个值,由于这种编码器是绝对式编码器,absa的0~9999的每一个值都代表着马达一圈之中的一个绝对位置;z信号的作用就是基准位置的判断;
cs1&cs2&cs3端口,均为1位输入信号,cs相的三个信号1,2,3分别代表着三相电机的U,V,W信号,它们控制着马达的旋转;cs相信号各自相差120度,其在编码器中的作用主要是信号的错误检测;
read_en端口,1位输入信号,上升沿触发,该信号触发后,absa,abss,sf各个统计值和状态值被输出到各自相应的端口;
error_reset端口,1位输入信号,上升沿触发,该信号触发后,对四个错误位CSE,ZE,CE2,CE1进行复位清零;
clk端口,1位输入信号,提供该模块工作的时钟信号;
absa_H(M,L)端口,8位输出信号,该信号共24位,H,M,L分别输出该信号的高、中、低8位,它表示absa单圈统计值;
abss_H(M,L)端口,8位输出信号,该信号共24位,H,M,L分别输出该信号的高、中、低8位,它表示abss多圈统计值;
status_flage端口,8位输出信号,该信号表示状态标志,其中包含了即时的三相CS值以及4个错误信号的值。
具体的操作步骤为:本模块的作用是根据输入信号a,b,z,cs1,cs2,cs3来统计absa,abss和SF的值,当上位机需要读取这些值的时候,需要制作一个read_en的上升沿,用其触发输出,这时absa,abss,sf的当前值都放到相应的输出端口,等待picoblze读取;若需要对包含在SF中的4个错误报警信号清零的话,则制作一个error_reset信号的上升沿即可。
MCU模块3,MCU模块3也称之为MCU软核(8位)模型,即图1中标识的processor。本模块是8位MCU软核模块,称为picoblaze,有了它,用户可以像用MCU一样使用FPGA,在某些应用领域是非常方便的。它共有11个端口,分别为:
address端口,10位输出信号,程序地址信号,该信号连接到Rom模型。
instruction端口,18位输入信号,指令数据,该信号连接到Rom模型,从ROM中取得指令代码。
port_id端口,8位输出信号,该信号是MCU的输入输出端口号,共可用256个IO端口,用户可自行分配,每个端口最大宽度为8位。
write_strobe端口,1位输出信号,当向输出端口输出数据时,该信号会形成一个与一个clk周期等宽的高电平,该信号用于向外部电路发出指示,表示有新的数据从IO端口输出。
out_port端口,8位输出信号,数据输出端口。
read_strobe端口,1位输出信号,当从输入端口输入数据时,该信号会形成一个与一个clk周期等宽的高电平,该信号用于向外部电路发出指示,MCU将从该端口读入数据,要求做好数据的准备。
in_port端口,8位输入信号,数据输入端口。
intterrupt端口,1位输入信号,中断请求端口。
intterrupt_ack端口,1位输出信号,中断响应端口。
reset端口,1位输入信号,复位信号,该信号连接到ROM模型,接收ROM模型发出的复位信号。
clk端口,1位输入信号,系统工作时钟信号。
Uart接收模块4,即图1中标识的receive,本模块用于Uart信号的接收,其中还包括了16级FIFO的功能。本模块共有9个端口,分别为:
serial_in端口,1位输入信号,串行信号输入端,按照特定的波特率接收异步数据;
read_buffer端口,1位输入信号,读FIFO控制信号;高电平表示在输出端口data_out的数据已被读取(或者将在下一个clk的上升沿被读取),FIFO会将下一个数据准备好,放在输出端口上;若FIFO中没有数据,此操作是无效的,最好避免;具体可以通过buffer_data_present信号来判断FIFO中是否有数据;
en_16_x_baud端口,1位输入信号,波特率设置信号;通过该信号,用户可以设置通讯的波特率,它们的关系是:该信号的频率是波特率的16倍(或约等于16倍);但是要注意,在占空比上有要求,该信号的高电平宽度只能保持一个clk的周期;用户可以使该信号持续为高,那就表示波特率的16倍就是该模块工作频率clk的频率,也就是说波特率为clk\16-bps,这是可配置的最快波特率;
reset_buffer端口,1位输入信号,复位FIFO信号;高电平有效,表示复位16个字节的FIFO缓存,缓存中所有当前数据丢失;
clk端口,1位输入信号,模块工作时钟信号,用于内部所有同步元件;
data_out端口,8位输出信号,接收到的一帧数据(8位)已经去掉了起始位和停止位,通过这个端口将数据传给MCU,当buffer_data_present信号有效时,该端口输出数据有效;
buffer_full端口,1位输出信号,当16字节的FIFO缓存满时,该信号输出高电平,提示主系统赶快读取数据,以防FIFO溢出,导致数据丢失;
buffer_half_full端口,1位输出信号,当16字节的FIFO中8个(或8个以上)字节有数据时,该信号输出高电平,表示FIFO中的数据快接近FIFO缓存上限了,主系统应该尽快处理FIFO中的数据;
buffer_data_present端口,1位输出信号,当FIFO缓存中存在数据(1个或以上)时,该信号输出高电平,此时data_out端口的输出数据是有效的。
本模块的工作方式如下:serial_in端口按照设定的波特率接收到数据后,去掉起始位和停止位,将8位有效数据存入FIFO中,buffer_full,buffer_half_full和buffer_data_present信号分别指示了FIFO中数据的存放情况,当read_buffer信号有效时,FIFO将数据按照顺序一个一个输出到data_out端口,供主系统读取。
Uart发送模块5,Uart发送模块5即图1中标识的transmit,本模块用于Uart信号的发送,其中还包括了16级FIFO的功能。本模块共有9个端口,分别为:
data_in端口,8位输入信号,该8位并行数据将被串行输出,该数据通过clk信号上升沿并且write_buffer信号为高电平时被FIFO获取;
write_buffer端口,1位输入信号,写FIFO控制信号。高电平表示在输入端口data_in的数据将在下一个clk信号的上升沿被写入FIFO;当该信号高电平时,任何一个clk信号的上升沿都会进行写入FIFO操作,因此该信号高只能保持一个clk周期,除非在下一个clk上升沿到来之前,已经有新的数据放入到data_in端口;当FIFO满的时候拒绝写FIFO操作;
en_16_x_baud端口,1位输入信号,波特率设置信号;通过该信号,用户可以设置通讯的波特率,它们的关系是:该信号的频率是波特率的16倍(或约等于16倍)。但是要注意,在占空比上有要求,该信号的高电平宽度只能保持一个clk的周期。用户可以使该信号持续为高,那就表示波特率的16倍就是该模块工作频率clk的频率,也就是说波特率为clk\16-bps,这是可配置的最快波特率。
reset_buffer端口,1位输入信号,复位FIFO信号。高电平有效,表示复位16个字节的FIFO缓存,缓存中所有当前数据丢失。若在传输过程中复位FIFO,则会出现错误。
clk端口,1位输入信号,模块工作时钟信号,用于内部所有同步元件。
serial_out端口,1位输出信号,这一串行数据由一个起始位,8个数据位(LSBfirst)和一个停止位组成,与一般的Uart操作一致,该信号高电平表示空闲(无数据无传输)状态。一旦FIFO中有数据,串行传输就会立即开始,而且传输无中断(当前帧的起始位紧接着上一帧的停止位),直到FIFO空为止。
buffer_full端口,1位输出信号,当16字节的FIFO缓存满时,该信号输出高电平,此时主系统不应该再继续向FIFO写入新的数据,直到有新的空间被建立(指示为buffer_full信号返回为低)。当该信号为高时,任何企图写入新数据的指令都将被忽略。
buffer_half_full端口,1位输出信号,当16字节的FIFO中8个(或8个以上)字节有数据等待被发送时,该信号输出高电平,这是一个非常有用的信号,提示FIFO中的数据快接近FIFO缓存上限了,主系统应该降低向FIFO中写入待发数据的速率。
buffer_data_present端口,1位输出信号,该信号在原始官方核中是没有引出的核内部通讯信号。但是这里会用到它,于是我把它引出当作外部信号使用。该信号在发送模块中用于FIFO子模块和发送子模块的通讯,指示FIFO中是否还有数据未发完。若为高,则表示缓存中还有数据待发。我把它引出的目的是作为控制外围串行控制芯片AMD485的信号,当buffer_data_present有下降沿产生时,表示一次通讯的返回数据发完,此时需要控制485芯片,使得它的发送使能信号变为接收使能,从而能等待接收上位机发出的下一个指令。
本模块的工作方式如下:主系统将需要Uart输出的数据通过data_in端口写入到Uart发送模块的FIFO中,当write_buffer信号有效时,本模块从data_in端口读入数据到FIFO。buffer_full,buffer_half_full和buffer_data_present信号分别指示了FIFO中数据的存放情况,FIFO中一旦有数据,本模块将按照设定的波特率从serial_out端口一帧一帧不间断的发送数据,直到FIFO中的数据全部发送完毕。
CRC校验模块6,CRC校验模块6即图1中标识的crc_model,作为Uart通讯的CRC校验模块,在收到一组数据帧之后和发送一组数据帧之前都需要做CRC校验。根据通讯协议,最长的一组数据有9帧(包括CRC帧),对于CRC模块来说,需要校验的数据最长为8帧,每一个数据帧的长度为8位,也就是说最长的校验数据为64位。CRC模块共有13个端口,分别为:
data_in1~data_in8端口,8位输入信号,表示需要校验的一帧数据(8位),最多需要校验的一组数据为8帧;
frame_num端口,4位输入信号,表示需要校验的帧数,数据是从data_in1开始取的,需要校验几帧就往后取几帧的数据;
data_ok端口,1位输入信号,表示需要校验的数据都已经准备完毕(都已放到相应的输入端口),可以进行校验了;该信号下降沿触发,下拉该信号后进行CRC校验操作;
clk端口,1位输入信号,提供该模块工作的时钟信号;
crc_out端口,8位输出信号,表示CRC校验后得出的CRC码;
out_vaild端口,1位输出信号,“1”表示CRC码输出有效,“0”表示CRC码暂时还没计算完毕;当制作出data_ok信号下降沿时,本模块开始计算CRC码,根据需要计算的数据帧数的长短不同,计算所需要的时间也不同,当计算完毕后,该信号会置“1”,表示输出的CRC码是有效的。
具体的操作步骤为:首先把需要校验的数据从高位到低位依次放入data_in1~data_in8的端口中,从通讯的角度来看就是先收到(或先发送)的数据放入data_in1,然后依次往后放数据;然后把需要校验的帧数放到frame_num端口,也就是指明data_in1~data_in8中,哪些端口是有有效数据的;最后制作一个data_ok的下降沿,此时,本模块开始计算CRC码,计算完毕后会把得出的CRC码放到crc_out端口,然后把out_vaild信号置“1”,以表示crc_out端口的输出CRC码有效。
ROM模块7,ROM模块7也称之为MCU指令ROM模型,如图1中标识的program_rom。本模块用于存放processor模块的指令机器代码,本模块是由官方提供的kcpsm3工具根据用户自己的汇编代码生成。本模块共有4个端口,分别为:
address端口,10位输入信号,该rom可以存放1024条指令,于是地址线有10条,供地址选择。
clk端口,1位输入信号,系统工作时钟信号。
proc_reset端口,1位输出信号,该信号用于复位MCU,使得processor模块回到初始状态,程序将从地址“000”开始执行,中断功能被屏蔽,状态寄存器复位。
instruction端口,18位输出信号,指令数据,该端口用于指令数据的输出。
波特率计算模块8,波特率计算模块8即图1中所示的baud_timer,是波特率计算用的,在Uart模块中,波特率是用户自己设置的,模块中有一个信号“en_16_x_baud”,顾名思义,要求该信号的频率设置为波特率的16倍。本申请中的通讯波特率要求为2.5Mbps,于是需要生成一个40MHZ频率的信号给“en_16_x_baud”,从图1中可以看出,有一个计数信号名为“baud_count”它将系统提供的120MHZ的信号3分频,得出的40MHZ信号给到“en_16_x_baud”。
中断控制模块9,中断控制模块9即图1中所示的interrupt_control,是中断控制用的,从图1中可知该中断的中断源是tx_buffer_present信号。tx_buffer_present信号表示是否发送缓存中还有数据,若该信号有下降沿产生,则说明Uart FIFO中的数据刚刚被发送完毕,此时需要产生一个中断,用于控制外围Uart串行传输控制芯片AMD485,使其从发送状态改变为接收状态,等待接收下一个上位机指令。由于AMD485是半双工工作的,同一时刻要么接收,要么发送,当编码器模块从上位机获得指令后,需要响应上位机的指令,这时需要把AMD485芯片转换为发送状态,而等回复的数据全部发送完毕后,需要再把状态切换回来,改成接收状态,这里的中断就起状态切换的功能。
DCM模块10,即图1中标识的Inst_dcm_120,它是处理时钟的,外部输入晶振为25MHZ,DCM模块10把25MHZ转换为120MHZ供各个模块使用,各模块使用的工作频率都是一样的。
以上就是本编码控制器的内部各个模块的功能以及其信号的具体说明。本编码控制器的工作流程为:
计数模块2(absa_abss_cnt)根据abz输入信号不断进行单圈、多圈计数;
Spi-EEPROM的电机参数先读到片内RAM模块1中,方便快速通讯;
Uart接收模块4接收到上位机的上位指令(上位指令有两种,读写电机参数和读当前单/多圈计数),将上位指令发送到MCU模块3(processor),MCU模块3解释上位指令,若是读电机参数,直接将RAM模块1中预先存储的电机参数读出传回,若是写电机参数,则通过SPI接口写EEPROM。若是读当前单/多圈计数,则计数模块2(absa_abss_cnt)读取当前的计数值以及错误位和状态值,通过Uart发送模块5传回上位机。
通过上述描述不难看出,编码控制器通过并转串模块将并行ABZ信号转换成串行通讯信号的方法,计数模块2(absa_abss_cnt)将ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断,将这些数据整合成松下协议可识别的信息元素传递给松下伺服,使其能带动编码控制器接口的电机工作。
以上,仅为本实用新型的具体实施方式,但本实用新型的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用新型揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本实用新型的保护范围之内。因此,本实用新型的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种编码控制器,其特征在于,包括:
RAM模块,所述RAM模块用于存储伺服电机的电机参数;
计数模块,所述计数模块用于计算、统计和监测与所述伺服电机旋转相关的输入信号;
MCU模块,所述MCU模块用于根据上位指令反馈所述电机参数和/或所述输入信号,还用于根据所述上位指令向所述RAM模块写入新的电机参数来更新所述电机参数。
2.根据权利要求1所述的编码控制器,其特征在于,还包括Uart接收模块,所述Uart接收模块用于接收所述上位指令并将所述上位指令发送至所述MCU模块。
3.根据权利要求2所述的编码控制器,其特征在于,还包括Uart发送模块,所述Uart发送模块用于将所述MCU模块的反馈信息发送至上位机。
4.根据权利要求3所述的编码控制器,其特征在于,还包括CRC校验模块,所述CRC校验模块用于对所述Uart接收模块接收的所述上位指令的每一组数据帧以及所述Uart发送模块发送的所述反馈信息的每一组数据帧做CRC校验。
5.根据权利要求4所述的编码控制器,其特征在于,还包括ROM模块,所述ROM模块用于存储所述MCU模块接收的所述上位指令。
6.根据权利要求5所述的编码控制器,其特征在于,还包括波特率计算模块,所述波特率计算模块用于计算所述Uart接收模块接收的所述上位指令的信号频率以及所述Uart发送模块发送的所述反馈信息的信号频率。
7.根据权利要求6所述的编码控制器,其特征在于,还包括中断控制模块,所述中断控制模块用于控制所述MCU模块信号接收和反馈的状态。
8.根据权利要求7所述的编码控制器,其特征在于,还包括DCM模块,所述DCM模块用于使所述RAM模块、所述计数模块、所述MCU模块、所述Uart接收模块、所述Uart发送模块、所述CRC校验模块、所述ROM模块、所述波特率计算模块以及所述中断控制模块使用的工作频率一致。
9.根据权利要求1-8任意一项所述的编码控制器,其特征在于,还包括并转串模块,所述并转串模块用于将所述编码控制器的并行ABZ信号转换成串行通讯信号。
10.根据权利要求1-8任意一项所述的编码控制器,其特征在于,所述计数模块将所述编码控制器的ABZ信号转换成单/多圈计数值,并根据UVW信号以及Z信号做错误判断。
CN202123447703.3U 2021-12-31 2021-12-31 一种编码控制器 Active CN216817207U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202123447703.3U CN216817207U (zh) 2021-12-31 2021-12-31 一种编码控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202123447703.3U CN216817207U (zh) 2021-12-31 2021-12-31 一种编码控制器

Publications (1)

Publication Number Publication Date
CN216817207U true CN216817207U (zh) 2022-06-24

Family

ID=82061694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202123447703.3U Active CN216817207U (zh) 2021-12-31 2021-12-31 一种编码控制器

Country Status (1)

Country Link
CN (1) CN216817207U (zh)

Similar Documents

Publication Publication Date Title
CN112799992B (zh) 现场总线芯片架构
EP1764703B1 (en) A system for providing access to multiple data buffers of a data retaining and processing device
CN111124986B (zh) 一种与Modbus兼容且更高效的异步串口通信协议
US6034623A (en) Autonomous radio telemetry
US20050198419A1 (en) Data transfer memory
CN102495565A (zh) 一种相控阵雷达天线波束控制装置
US10579581B2 (en) Multilane heterogeneous serial bus
CN109639737A (zh) 协议发生装置、数据采集终端的协议转换方法和配置方法
US20190356412A1 (en) Fast termination of multilane double data rate transactions
CN104714908A (zh) 支持主从模式的spi接口
CN1570877A (zh) 通用串行通讯接口调试装置及方法
CN114968365B (zh) 适配器寄存器单元及包含其的主机适配器电路
CN111930666A (zh) 一种高速可配置工业协议转换器
CN103425614B (zh) 用于单片机系统的同步串行数据发送装置及其方法
CN216817207U (zh) 一种编码控制器
CN101901022A (zh) 时钟精度调节模块与方法及应用其的通用串行总线设备
US20060184708A1 (en) Host controller device and method
CN112579495B (zh) Gpio控制器
CN102928004B (zh) 一种编码器信号实时处理系统及方法
CN106603113A (zh) 一种雷达信号处理机对外通信控制系统
CN110572174B (zh) 支持蓝牙ble协议的射频收发器及其控制方法
CN111026691B (zh) 基于apb总线的owi通讯设备
CN108039936A (zh) 一种用于无人作业装备的通信协议数据包及通信系统
Li et al. Research on Improvement of Configurable I2C controller IP Core
CN204329988U (zh) 一种传感器采集处理电路

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant