一种自动钢琴控制装置及方法转让专利

申请号 : CN201710299075.8

文献号 : CN106910490B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张桦方俊鹏蔡业胜商吉利戴国骏

申请人 : 杭州电子科技大学

摘要 :

本发明公开了一种自动钢琴控制装置及方法。该装置包含有主控模块、从控模块和驱动模块三个部分。硬件拓扑上,主控模块和从控模块通过总线进行连接,两者之间是一对多的关系,而从控模块和驱动模块是一对一的连接关系。该方法步骤是:1)把MIDI乐曲数据通过通信接口发送给主控模块;2)主控模块通过算法解析MIDI数据,从解析结果中提取到需要的信息并封装成自定义的数据帧;3)主控模块发送给从控模块;4)从控模块接收到主控模块的数据帧后,解析数据帧并据此产生控制信号;5)从控模块将控制信号发送给驱动模块;6)驱动模块控制钢琴弹奏。本发明能让钢琴不间断地自动弹奏绝大多数MIDI乐曲,易于操作、维护、安装。

权利要求 :

1.一种自动钢琴控制装置,包括主控模块、从控模块和驱动模块,主控模块与从控模块之间通过通信总线进行数据传输,在通信总线上同时挂载了主控模块和多个从控模块,每个从控模块对应一个驱动模块,其特征在于:主控模块负责将MIDI乐曲数据转换成自定义数据帧,从控模块根据自定义数据帧产生控制信号,驱动模块根据控制信号自动弹奏钢琴;

所述的主控模块为产品型号为 i.MX287的飞思卡尔ARM9处理器;处理器i.MX287的A1引脚、A2引脚、A39引脚、A40引脚接地,A5引3脚 A6引脚0接3.3V;支持12V、5V电源接入,12V~电源接入时,经由型号为MP1482DN-LF-Z的稳压芯片降压为5V,稳压芯片MP1482DN-LF-Z的VDD引脚直连12V电压,稳压芯片的EN引脚串联100k电阻、并联0.01uF的电容后连接12V电压,12V电压串联型号为PESD12VL2BT的保护二极管的1、2引脚,保护二极管PESD12VL2BT的3引脚接地;稳压芯片MP1482DN-LF-Z的SS引脚串联0.1uF电容后接地,稳压芯片的COMP引脚串联3300pF电容、5.7k电阻后接地,稳压芯片的FB引脚与2.7k电阻相连,稳压芯片的SW引脚输出5V电源连接型号为SWPA6045S150MT的电感做稳压,稳压芯片的BS引脚连接0.01uF电容后与SW引脚并联;5V电源经过并联的10uF、10uF、0.1uF电容后接地;处理器i.MX287的接口CAN0_RX连接22欧姆电阻输出,处理器i.MX287的接口CAN0_TX连接22欧姆电阻输出;USB HOST接口VBUS接+5V电源,USB HOST接口D+,D-分别连接22欧姆电阻输出连接USB_H_P、USB_H_N,并且D+,D-与型号为NUP4202W1T2G的电路保护器的6脚、1脚相连,NUP4202W1T2G电路保护器的5脚连+5V电压、2脚接地;USB HOST接口的5v电源需要经过330uF、10uF、0.1uF并联滤波。

2.根据权利要求1所述的一种自动钢琴控制装置,其特征在于:所述的从控模块为产品型号为STM32F103C8T6的意法半导体的单片机;STM32F103C8T6的单片机1、9、24、36、48引脚接3.3V电压,单片机的8、23、47、35引脚接地,单片机的20、44引脚串联10k电阻后接地;板载

5V电源经过型号为AMS1117的模块转换成3.3V,模块AMS1117的3引脚连接5V并且分别与

10uF的电解电容、0.1uF的电容并联后接地用来滤波,模块AMS1117的1脚直接接地,2脚并联

0.1uF、10uF电解电容后接地用来滤波,2脚也输出3.3V;CAN接口CANRX连接单片机STM32F103C8T6的PA11引脚,CANTX连接单片机STM32F103C8T6的PA12引脚;UART接口UART_RX连接STM32F103C8T6的PA3引脚,UART_TX连接单片机STM32F103C8T6的PA2引脚;USB接口USB_D-串联22欧姆电阻输出,USB_D+串联22欧姆电阻后并联串联着的1.5欧姆和3.3V电阻输出,USB模块的VDD接入5V并用限流电阻限制电流在500mA,GND接地。

3.根据权利要求1所述的一种自动钢琴控制装置,其特征在于:所述的驱动模块是型号为IRF540N的功率放大管进行功率输出;功率放大管IRF540N的源极接地,漏极串联型号为IN4007的齐纳二极管,齐纳二极管IN4007的另一管脚串联40V电源,齐纳二极管IN4007两侧并联输出;在驱动模块上共有12个IRF540的功率放大管,形成一组功率输出;功率放大管IRF540N的栅极串联连接型号为ULN2003A的达林顿管对应的输出管脚;达林顿管ULN2003A的第9引脚接+5V电源,达林顿管的12 16引脚串联1k电阻后连接+5V电源,达林顿管的引脚~接地,达林顿管的1 7引脚为外部信号输入引脚,默认串联10k上拉电阻;驱动模块的输入电~

源为40V,经过型号为LM2596HVS_ADJ的稳压芯片降压为5V,再经由型号为AMS1117的稳压芯片降压为3.3V;稳压芯片LM2596HVS_ADJ的1引脚串联一个保险丝后并联IN4007以及容值为

100uF的电解电容和0.1uF的电容后接地,3、5引脚接地,4引脚串联1k电阻后接地,2引脚串联一个齐纳二极管和68uH的电感,其中齐纳二极管另一引脚接地,电感另一引脚输出5V电压;稳压芯片AMS1117的3脚接5V电源并且通过0.1uF和10uF的电容并联滤波,1脚接地,2脚输出3.3V并用10uF电容滤波,2脚还串联一个470欧姆的限流电阻以及一个发光二极管作为电源指示灯。

4.一种自动钢琴控制的方法,使用权利要求1所述的装置,其特征在于该方法包括:

1)通过WIFI、USB或蓝牙,把MIDI乐曲数据发送给主控模块;

2)主控模块读取MIDI乐曲数据,按照自定义的解析算法对MIDI数据进行解析,并对此进行重新编码封装成自定义的数据帧;

3)主控模块通过通信总线把数据帧发送给从控模块;

4)从控模块接通过通信总线收到主控模块下发的数据,对数据进行解析,提取出数据中包含的音符、力度、时值、音轨的信息,据此产生控制信号;

5)从控模块输出控制信号给驱动模块;

6)驱动模块接收输入的控制信号,然后据此控制钢琴弹奏;

步骤4)中从控模块通过通信总线不断收到来自主控模块的数据,不断对数据进行解析,并且不断地产生控制信号,这是一个实时处理的过程;

步骤4)中从控模块接收到来自主控模块的数据帧后,解析得到音符、按下力度、抬起力度、时值、音符速度、拍号、音轨;首先根据音符数据去搜索IO资源映射表;IO资源映射表是基于对钢琴琴键、音符音阶和从控模块的GPIO口的统一编码映射表;从控模块查询到的IO口如果是属于自己所持有的范围,那么就结合其他解析得到的数据产生控制信号,否则忽略本条数据;

步骤4)中从控模块所产生的控制信号是对应音符的IO口输出的128级的PWM信号;这个

128级的PWM信号能够表达琴键按下力度、抬起力度;从控模块输出这个PWM信号的输出时间,对应的是音符的时值和拍号。

5.根据权利要求4所述的方法,其特征在于:步骤2)中主控模块从MIDI数据中解析到的数据包含了音符、按下力度、抬起力度、时值、音符速度、拍号、音轨,对此进行重新编码封装成自定义的数据帧。

6.根据权利要求4所述的方法,其特征在于:

步骤3)中主控模块和从控模块之间的通信总线包括CAN总线和485总线;主控模块向外发送数据帧是以广播的形式发送到通信总线上。

说明书 :

一种自动钢琴控制装置及方法

技术领域

[0001] 本发明涉及自动控制领域的一种自动钢琴的控制系统,尤其涉及自动钢琴的控制装置及方法。

背景技术

[0002] 随着电子技术的飞速发展,使用集成电路来控制钢琴自动演奏成为可能。在20世纪80年代初,各个厂家按照自己的规格和标准产生电子乐器,当一个电脑音乐系统同时使用几个不同厂家的设备来组成的时候,就会发生设备不兼容的问题。
[0003] 为解决电声乐器之间的通信和兼容问题,1982年国际乐器制造者协会的十几家厂商聚在一起探讨这个问题,随后MIDI(Musical Instrument Digital Interface)乐器数字接口在这个会议上被提出。随着MIDI协议的发展和成熟,各种电子乐器厂商生产出各式各样的互相兼容的电子乐器,如今MIDI已是电子乐器之间以及电子乐器与电脑之间统一的通信协议。
[0004] 同时,现代自动钢琴也出现于20世纪80年代,其工作原理是把MIDI信号转换成钢琴键盘按下的速度、力度、音符、时值等信息,然后控制驱动器弹奏钢琴。随着采样率的进一步提高,自动钢琴的演奏表现力大大丰富。在很多高档的餐厅经常可以看到自动钢琴,在享受高品质的钢琴音乐的同时,也可以节省下人力成本。
[0005] 自动钢琴的核心部分是一种可以控制钢琴自动弹奏的装置,该装置是电子、计算机、机械、自动化控制等诸多领域结合的产物,尤其是电子技术、计算机软件技术和自动控制技术的运用。
[0006] 目前,现有的自动钢琴控制装置及方法不够灵活、不易拓展,在许多方面比较落后,这在升级和维护自动钢琴的时候带来许多困难。本发明设计了结构完整、清晰的钢琴控制装置易于组合、安装和扩展,并提出行之有效的控制方法,克服了一些传统自动钢琴的缺点。

发明内容

[0007] 为了克服传统自动钢琴的一些缺点,本发明针对自动钢琴的控制部分,提出了一种自动钢琴控制装置及方法。一方面本系统提供了一种自动钢琴控制装置,包括主控模块、从控模块和驱动模块。
[0008] 所述的主控模块为产品型号为 i.MX287的飞思卡尔ARM9处理器。i.MX287的A1、A2、A39、A40接地,A53 A60接3.3V。支持12V、5V电源接入,12V电源接入时,经由型号为~MP1482DN-LF-Z的稳压芯片降压为5V,MP1482DN-LF-Z的VDD引脚直连12V电压,EN引脚串联
100k电阻、并联0.01uF的电容后连接12V电压,12V电压串联型号为PESD12VL2BT的保护二极管的1、2引脚,PESD12VL2BT的3引脚接地。MP1482DN-LF-Z的SS引脚串联0.1uF电容后接地,COMP引脚串联3300pF电容、5.7k电阻后接地,FB引脚与2.7k电阻相连,SW引脚输出5V电源连接型号为SWPA6045S150MT的电感做稳压,BS引脚连接0.01uF电容后与SW引脚并联。5V电源经过并联的10uF、10uF、0.1uF电容后接地。CAN接口CAN0_RX连接22欧姆电阻输出,CAN0_TX连接22欧姆电阻输出。USB HOST接口VBUS接+5V电源,D+,D-分别连接22欧姆电阻输出连接USB_H_P、USB_H_N,并且D+,D-与型号为NUP4202W1T2G的电路保护器的6脚、1脚相连,NUP4202W1T2G电路保护器的5脚连+5V电压、2脚接地。USB接口的5v电源需要经过330uF、
10uF、0.1uF并联滤波。UART接口UART0_RX,UART0_TX分别连接22欧姆电阻输出。
[0009] 所述的从控模块为产品型号为STM32F103C8T6的意法半导体的的单片机。STM32F103C8T6的1、9、24、36、48引脚接3.3V电压,8、23、47、35引脚接地,20、44引脚串联10k电阻后接地。板载5V电源经过型号为AMS1117的模块转换成3.3V,AMS1117的3引脚连接5V并且分别与10uF的电解电容、0.1uF的电容并联后接地用来滤波,AMS1117的1脚直接接地,2脚并联0.1uF、10uF电解电容后接地用来滤波,2脚也输出3.3V。CAN接口CANRX连接STM32F103C8T6的PA11引脚,CANTX连接STM32F103C8T6的PA12引脚。UART接口UART_RX连接STM32F103C8T6的PA3引脚,UART_TX连接STM32F103C8T6的PA2引脚。USB接口USB_D-串联22欧姆电阻输出,USB_D+串联22欧姆电阻后并联串联着的1.5欧姆和3.3V电阻输出,USB模块的VDD接入5V并用限流电阻限制电流在500mA,GND接地。
[0010] 所述的驱动模块是型号为IRF540N的功率放大管进行功率输出。IRF540N的源极接地,漏极串联型号为IN4007的齐纳二极管,IN4007的另一管脚串联40V电源,IN4007两侧并联输出。在驱动模块上共有12个IRF540的功率放大管,形成一组功率输出。IRF540N的栅极串联连接型号为ULN2003A的达林顿管对应的输出管脚。ULN2003A的第9引脚接+5V电源,12~16引脚串联1k电阻后连接+5V电源,第8引脚接地,1 7引脚为外部信号输入引脚,默认串联~
10k上拉电阻。驱动模块的输入电源为40V,经过型号为LM2596HVS_ADJ的稳压芯片降压为
5V,再经由型号为AMS1117的稳压芯片降压为3.3V。LM2596HVS_ADJ的1引脚串联一个保险丝后并联IN4007以及容值为100uF的电解电容和0.1uF的电容后接地,3、5引脚接地,4引脚串联1k电阻后接地,2引脚串联一个齐纳二极管和68uH的电感,其中齐纳二极管另一引脚接地,电感另一引脚输出5V电压。AMS1117的3脚接5V电源并且通过0.1uF和10uF的电容并联滤波,1脚接地,2脚输出3.3V并用10uF电容滤波,2脚还串联一个470欧姆的限流电阻以及一个发光二极管作为电源指示等。
[0011] 本发明另一方面提供了一种自动钢琴控制的方法,具体步骤包括:
[0012] 1)通过WIFI、USB、蓝牙等通信接口,把MIDI乐曲数据发送给主控模块;
[0013] 2)主控模块读取MIDI乐曲数据,按照自定义的解析算法对MIDI数据进行解析。并对此进行重新编码封装成自定义的数据帧;
[0014] 3)主控模块通过总线把数据帧发送给从控模块;
[0015] 4)从控模块通过总线收到主控模块下发的数据,对数据进行解析,提取出数据中包含的音符、力度、时值、音轨等信息,据此产生控制信号;
[0016] 5)从控模块输出控制信号给驱动模块;
[0017] 6)驱动模块接收输入的控制信号,然后据此控制钢琴弹奏。
[0018] 步骤1)中把MIDI乐曲数据发送给主控模块,主控模块除了从USB、SD卡读取以外,还包括但不限于通过WIFI、USB、蓝牙等通信接口把MIDI数据传输给主控模,只要传输过程符合一定的协议。
[0019] 步骤2)中主控模块需要通过一定的算法对MIDI数据进行准确而快速的解析。从MIDI数据中解析到的数据包含了音符、按下力度、抬起力度、时值、音符速度、拍号、音轨等信息,对此进行重新编码封装成自定义的数据帧。
[0020] 步骤3)中主控模块和从控模块之间的通信总线包括但不限于CAN总线、485总线。
[0021] 步骤3)中,主控模块与从控模块是一对多的关系,主控模块向外发送数据帧是以广播的形式发送到总线上。
[0022] 步骤4)中,从控模块会通过总线不断收到来自主控模块的数据,不断对数据进行解析,并且不断地产生控制信号,这是一个实时处理的过程。
[0023] 步骤4)中,从控模块接收到来自主控模块的数据帧后,解析得到音符、按下力度、抬起力度、时值、音符速度、拍号、音轨等信息。首先会根据音符数据去搜索IO资源映射表。IO资源映射表是基于对钢琴琴键、音符和从控板的GPIO口的统一编码映射。从控模块查询到的IO口如果是属于自己所持有的范围,那么就结合其他解析得到的数据产生控制信号,否则忽略本条数据。
[0024] 步骤4)中,从控模块所产生的控制信号是对应音符的IO口输出的128级的PWM信号。这个128级的PWM信号能够丰富地表达琴键按下力度、抬起力度。从控模块输出这个PWM信号的输出时间,对应的是音符的时值、拍号等信息。
[0025] 步骤5)中,从控模块与驱动模块是一对一的连接关系。
[0026] 本发明是一种自动钢琴控制装置及方法。本发明是通过通信总线连接主控模块和从控模块,主控模块负责将MIDI乐曲数据转换成自定义数据帧,从控模块根据自定义数据帧产生控制信号,最驱动模块根据控制信号自动弹奏钢琴。从而使达到钢琴自动弹奏的目的,节省了人力。
[0027] 本发明把MIDI乐曲数据通过主控模块转换成需要的自定义数据帧,然后主控模块把数据帧传输给从控模块。由从控模块根据接收到的数据帧产生控制信号,最后用控制信号控制驱动模块驱动钢琴弹奏。

附图说明

[0028] 图1是本装置的主控模块示意图;
[0029] 图2是本装置主控模块的芯片电路;
[0030] 图3是本装置主控模块的电源电路;
[0031] 图4是本装置主控模块的USB电路;
[0032] 图5是本装置的从控模块示意图;
[0033] 图6是本装置从控模块的芯片电路;
[0034] 图7是本装置从控模块的电源电路;
[0035] 图8是本装置从控模块的USB接口电路;
[0036] 图9是本装置的驱动模块示意图;
[0037] 图10是本装置驱动模块的电源电路;
[0038] 图11是本装置驱动模块的功率输出电路;
[0039] 图12是本装置驱动模块的达林顿电路;
[0040] 图13是本装置的硬件拓扑图示意图;
[0041] 图14是本装置的数据流与控制示意图;
[0042] 图15是本装置主控模块的业务流图;
[0043] 图16是本装置从控模块的整体业务架构;
[0044] 图17是本装置从控模块的PWM业务框架;
[0045] 图18是本装置从控模块的钢琴参数运行时调试框架。

具体实施方式

[0046] 为了使本发明的技术手段、创作特性、达成目的与功效易于理解与明白,下面结合具体图示进一步详细阐述本发明。
[0047] 如图1所示,是本装置的主控模块示意图。主控模块具有多种不同硬件通信接口,其USB接口可以扩展USB转WIFI、蓝牙、485等等接口。
[0048] 如图2 4所示,所述的主控模块为产品型号为 i.MX287的飞思卡尔ARM9处理器。~
i.MX287的A1、A2、A39、A40接地,A53 A60接3.3V。支持12V、5V电源接入,12V带你元接入时,~
经由型号为MP1482DN-LF-Z的稳压芯片降压为5V,MP1482DN-LF-Z的VDD引脚直连12V电压,EN引脚串联100k电阻、并联0.01uF的电容后连接12V电压,12V电压串联型号为PESD12VL2BT的保护二极管的1、2引脚,PESD12VL2BT的3引脚接地。MP1482DN-LF-Z的SS引脚串联0.1uF电容后接地,COMP引脚串联3300pF电容、5.7k电阻后接地,FB引脚与2.7k电阻相连,SW引脚输出5V电源连接型号为SWPA6045S150MT的电感做稳压,BS引脚连接0.01uF电容后与SW引脚并联。5V电源经过并联的10uF、10uF、0.1uF电容后接地。CAN接口CAN0_RX连接22欧姆电阻输出,CAN0_TX连接22欧姆电阻输出。USB HOST接口VBUS接+5V电源,D+,D-分别连接22欧姆电阻输出连接USB_H_P、USB_H_N,并且D+,D-与型号为NUP4202W1T2G的电路保护器的6脚、1脚相连,NUP4202W1T2G电路保护器的5脚连+5V电压、2脚接地。USB接口的5v电源需要经过
330uF、10uF、0.1uF并联滤波。UART接口UART0_RX,UART0_TX分别连接22欧姆电阻输出。
[0049] 如图5 8为本装置的从控模块。所述的从控模块为产品型号为STM32F103C8T6的意~法半导体的的单片机。STM32F103C8T6的1、9、24、36、48引脚接3.3V电压,8、23、47、35引脚接地,20、44引脚串联10k电阻后接地。板载5V电源经过型号为AMS1117的模块转换成3.3V,AMS1117的3引脚连接5V并且分别与10uF的电解电容、0.1uF的电容并联后接地用来滤波,AMS1117的1脚直接接地,2脚并联0.1uF、10uF电解电容后接地用来滤波,2脚也输出3.3V。
CAN接口CANRX连接STM32F103C8T6的PA11引脚,CANTX连接STM32F103C8T6的PA12引脚。UART接口UART_RX连接STM32F103C8T6的PA3引脚,UART_TX连接STM32F103C8T6的PA2引脚。USB接口USB_D-串联22欧姆电阻输出,USB_D+串联22欧姆电阻后并联串联着的1.5欧姆和3.3V电阻输出,USB模块的VDD接入5V并用限流电阻限制电流在500mA,GND接地。
[0050] 如图9 12为本装置的驱动模块。驱动模块具有电源模块、开关电路模块、功率放大~模块、信号输入模块,它可以接收从控模块的控制信号,并根据此信号输出控制钢琴弹奏。
所述的驱动模块是型号为IRF540N的功率放大管进行功率输出。IRF540N的源极接地,漏极串联型号为IN4007的齐纳二极管,IN4007的另一管脚串联40V电源,IN4007两侧并联输出。
在驱动模块上共有12个IRF540的功率放大管,形成一组功率输出。IRF540N的栅极串联连接型号为ULN2003A的达林顿管对应的输出管脚。ULN2003A的第9引脚接+5V电源,12 16引脚串~
联1k电阻后连接+5V电源,第8引脚接地,1 7引脚为外部信号输入引脚,默认串联10k上拉电~
阻。驱动模块的输入电源为40V,经过型号为LM2596HVS_ADJ的稳压芯片降压为5V,再经由型号为AMS1117的稳压芯片降压为3.3V。LM2596HVS_ADJ的1引脚串联一个保险丝后并联IN4007以及容值为100uF的电解电容和0.1uF的电容后接地,3、5引脚接地,4引脚串联1k电阻后接地,2引脚串联一个齐纳二极管和68uH的电感,其中齐纳二极管另一引脚接地,电感另一引脚输出5V电压。AMS1117的3脚接5V电源并且通过0.1uF和10uF的电容并联滤波,1脚接地,2脚输出3.3V并用10uF电容滤波,2脚还串联一个470欧姆的限流电阻以及一个发光二极管作为电源指示等。
[0051] 如图13所示,是一个完整的自动钢琴控制系统的硬件拓扑关系。主控模块与从控模块之间通过连接线组成的通信总线进行数据传输。在通信总线上同时挂载了主控模块和多个从控模块。主控模块与从控模块是“一对多”的关系,从控模块和驱动模块是“一对一”的关系。
[0052] 本发明的工作过程:
[0053] 如图14所示,一个完整的自动钢琴控制系统的数据流和工作流整体上首先是主控模块从通信接口获取MIDI数据,并在主控模块上解析MIDI数据后重新封装成自定义的数据帧,把数据帧沿着通信总线传输给从控模块。从控模块接收到主控模块下发的数据以后,会对数据进行解析,提取出数据中包含的音符、力度、时值、音轨等信息,然后控制驱动板输出。其中音符数据是基于对钢琴琴键、音符统一编码并映射到从控板的GPIO口,提取出音符数据后,直接查询其映射的IO口,然后控制弹奏。
[0054] 具体的钢琴控制系统的方法步骤如下:
[0055] 1)通过WIFI、USB、蓝牙等通信接口,把MIDI乐曲数据发送给主控模块。
[0056] 2)主控模块读取MIDI乐曲数据,按照自定义的解析算法对MIDI数据进行解析。并对此进行重新编码封装成自定义的数据帧。
[0057] 3)主控模块通过总线把数据帧发送给从控模块。
[0058] 4)从控模块通过总线收到主控模块下发的数据,对数据进行解析,提取出数据中包含的音符、力度、时值、音轨等信息,据此产生控制信号。
[0059] 5)从控模块输出控制信号给驱动模块。
[0060] 6)驱动模块接收输入的控制信号,然后据此控制钢琴弹奏。
[0061] 如图15所示,步骤1) 3)中,首先把MIDI乐曲数据发送给主控模块,除了主控模块~从USB、SD卡读取以外,还包括但不限于通过WIFI、USB、蓝牙等通信接口把MIDI数据传输给主控模块。主控模块取得MIDI数据后,通过MIDI解析算法对其进行解析。解析所得的结果,需要精确表达MIDI数据含有的音符、按下力度、抬起力度、时值、音符速度、拍号、音轨等信息。主控模块上,将所得的信息输入到设计好的协议打包器中,将所有必要数据打包成一个自定义协议的数据帧。然后主控模块将该数据帧发送至通信总线。
[0062] 步骤3)中主控模块和从控模块之间的通信总线包括但不限于CAN总线、485总线。
[0063] 如图16所示,步骤4) 5)中,从控模块从总线上接收到来自主控模块的实时数据~帧。从控模块将得到的数据帧输入到协议解析器中,这个解析器与主控模块中的协议打包器是对应的,针对的是同一种数据协议。协议解析器解析数据,得到音符、按下力度、抬起力度、时值、音符速度、拍号、音轨等信息。此时,从控模块需要到IO资源映射表中去搜索这个音符所对应的IO口。其中IO资源映射表是存储在每一个从控板中的静态表,该表的作用是对钢琴所有的琴键、音符音阶、从控模块所含有的IO口进行统一的映射。如果从控模块从IO资源映射表中搜索到的IO口是属于模块自身的IO,那么将把IO信息以及力度、时值等其他信息输入到PWM业务框架中,并据此产生控制信号输出给驱动模块。
[0064] 如图17所示,是从控模块的PWM业务框架,该框架的作用是产生控制信号,该业务框架所需要的数据信息是查找IO资源映射表得到的IO引脚、以及解析主控模块发送的数据帧得到的按下力度、抬起力度、时值、音符速度、拍号、音轨等信息。在得到这些数据后,首先将这些数据与一个控制函数进行绑定,然后将此函数注册到定时器中断函数中。由于一个从控模块,有可能会同时接收到多个同时按键事务,所以注册回调函数时要选择一个空闲的定时器。而在定时器中断中,每次都会查询是否存在已注册的回调函数,如果存在回调函数,则会进一步查询它的PWM信息。在PWM信息中,包含有本次需要弹奏的按键的时值,查询该时值是否过期,该数据过期的实际含义是该音符是否已经弹奏完毕,也表征该PWM参数是否过期。如果PWM参数过期,那么就把注册的回调函数注销掉。如果PWM参数未过期,那么就触发该回调函数输出一个PWM信号。构建这个PWM框架的目的除了生成PWM信号以外,另一个目的是在定时器中断里,可以使得任意的IO引脚都可以产生PWM信号,而不是与芯片内部PWM模块对应的IO引脚才能产生PWM信号,这样才可以适应对多个钢琴按键的控制。
[0065] 如图18所示,是自动钢琴的参数运行时调试框架。在实际的自动钢琴控制中,从MIDI数据帧解析得到的数据虽然是一样的,但是由于不同的钢琴还是存在一些细微的差别,即便是统一批次的钢琴也会有差别,这往往就需要有经验的调音师对钢琴进行调教。而在自动钢琴中,钢琴的弹奏是由自动钢琴控制系统进行的,所以这些控制参数需要进行调教,并把合适的参数固化下来。该框架的作用是帮助钢琴调音人员调试钢琴参数,并把合适的参数进行固化,在下次自动钢琴启动的时候,就会使用上次固化的参数指导生成控制信号。该调试框架的流程,首先用户发发送调试指令给从控模块,从控模块将收到的数据传给指令解析器,指令解析器对指令进行分析包括词法分析、键值提取等,并根据得到的控制命令进行参数修改,或者触发动作,这在控制映射函数中进行触发,并在调试指令执行结束后,返回调试信息给用户。
[0066] 以上所述仅为本发明的优选实施方案,本发明的保护范围并不仅限上述实施方式,凡是属于本发明原理的技术方案均属于本发明的保护范围。对于本领域的技术人员而言,在不脱离本发明的原理的前提下进行的若干改进和润饰,这些改进和润饰也应是为本发明的保护范围。