一种低成本低复杂度的多路da同步控制方法
技术领域
1.本发明涉及多路dac同步控制技术领域,具体为一种低成本低复杂度的多路da同步控制方法。
背景技术:2.多路dac(数模转换器,把数字量转换成模拟的器件)系统可以将数字信号转换为模拟信号,从而可以实现数字系统对一些模拟系统的控制(例如无源液晶空间光调制器驱动),并且可以实现低时延、高精度的要求。其特点是可以同时实现多路模拟信号的输出和控制,为有多路模拟信号需求的设备和器件提供驱动和控制信号。其原理是利用单片机系统控制多路dac芯片进行快速dac,实现多路模拟信号的输出。其中,单片机从计算机系统获取数字数据信息,同时再将信息传送给dac芯片,实现数字信号向模拟信号的转换。
3.目前常用的多路dac系统普遍采用fpga系统进行控制,fpga系统控制的da输出有两大类:一类是集成fpga芯片的板卡直接插在电脑主板上,然后利用信号传输接口输出模拟信号,这种方式输出的模拟信号路数受限,目前最大输出是32路;另外一类是在电脑主板上插一块数字信号发送卡,先把数字信号通过pci或者pci-e接口高速传输到集成fpga芯片的数模转换器,然后再进行数模转换和多路模拟信号的输出。该方式可以实现更多路数的模拟信号输出。
4.以上两种实现方式性能优良,但是系统过于复杂,成本高。首先,fpga虽然可以实现一个芯片控制和输出多路模拟信号,但是其芯片价格昂贵。且价格与管脚数相关,管脚数越多,价格越高。对于多路模拟信号输出,可以利用一个大管脚数的fpga芯片实现,也可以利用多个小管脚数的fpga芯片实现。不管哪一种方法,成本都非常高昂,且fpga电路的设计和开发复杂度高。其次, fpga板卡或者高速数据传输卡需要插在计算机主板上,这就限制了计算机必须具备插卡空间,因此笔记本电脑和紧凑型台式机便无法使用,从而导致系统复杂。因此,fpga控制数模转换系统不适用于对速度和时延要求不高、而要求低成本的应用场景,同时其也不适用于笔记本电脑和紧凑型电脑的控制场景。
技术实现要素:5.本发明的目的在于提供一种低成本低复杂度的多路da同步控制方法,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种低成本低复杂度的多路da同步控制方法:第一步,计算机系统先将数据通过usb发送给底板控制芯片。
7.第二步,底板控制芯片通过对数据进行初步处理后,通过spi接口分发给6个子板控制芯片。
8.第三步,各个子板控制芯片再通过2个spi口分发给各自的dac芯片。
9.第四步,最后再由底板控制芯片给dac芯片发出命令,dac芯片输出模拟信号。
10.优选的,在第一步中的底板控制芯片为stm32f429zet6。
11.优选的,在第一步中的usb采用usb2.0协议,满速率为480mbps。
12.优选的,在第二步中的子板控制芯片采用stm32f411ceu6。
13.优选的,在第三步和第四步中的每个dac芯片有16个输出引脚。
14.优选的,在第三步中,每个子板控制芯片链接有两个dac芯片。
15.优选的,在第一步到第四步中,共使用到的12个dac芯片中,每个芯片的16个输出引脚,能够输出192路模拟信号。
16.与现有技术相比,本发明的有益效果是:针对多路dac系统存在的成本高、结构复杂、使用场景受限问题,本发明提出采用stm32作为主控、利用usb接口实现与电脑通信:利用stm32代替fpga,实现对模拟信号的控制输出,大大减小了成本、降低了复杂度,并且速率和时延也可以得到一定的控制;利用usb接口传输代替pci或者pci-e接口的传输方式,使得可以利用移动pc和紧凑型计算机进行模拟信号的控制,拓展了应用场景。
附图说明
17.图1为本发明的系统数据通路连接关系示意图;图2为本发明的子板数据通路连接关系示意图;图3为本发明的系统工作时序流程图;图4为本发明的主板嵌入式软件流程图;图5为本发明的子板嵌入式软件流程图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.实施例1请参阅图1-5,本发明提供一种技术方案:一种低成本低复杂度的多路da同步控制方法:第一步,计算机系统先将数据通过usb发送给底板控制芯片。
20.第二步,底板控制芯片通过对数据进行初步处理后,通过spi接口分发给6个子板控制芯片。
21.第三步,各个子板控制芯片再通过2个spi口分发给各自的dac芯片。
22.第四步,最后再由底板控制芯片给dac芯片发出命令,dac芯片输出模拟信号;采用stm32、usb和spi的方式进行控制和数据的通信,可以使系统的设计难度和制造成本极大的下降。usb用于pc和底板之间的通信,spi用于底板和子板之间进行通信。
23.具体而言,在第一步中的底板控制芯片为stm32f429zet6。
24.具体而言,在第一步中的usb采用usb2.0协议,满速率为480mbps,系统正常工作时速率为200mbps左右,采用usb接口进行数据的传输,在数模转换器和计算机之间采用usb数据线连接。这样避免了在计算机主板上插入控制卡,从而使得其可以应用在移动pc和紧凑
型计算机等具备usb接口或者usb转接口的控制设备上。
25.具体而言,在第二步中的子板控制芯片采用stm32f411ceu6,计算机通过usb发出数据,主控cpu收到信号后进分组,然后再通过板载的6个spi口对6个子板进行数据传输,子板收到数据后再通过spi接口将数据写入到dac芯片内部的寄存器,等待底板的统一信号,在收到刷新命令之后再统一控制dac芯片刷新数据,spi接口的最大速率为45mbps,最慢速率为22.5mbps,我们统一采用22.5mbps速率。
26.具体而言,在第三步和第四步中的每个dac芯片有16个输出引脚。
27.具体而言,在第三步中,每个子板控制芯片链接有两个dac芯片。
28.具体而言,在第一步到第四步中,共使用到的12个dac芯片中,每个芯片的16个输出引脚,能够输出192路模拟信号,在系统工作时,子板负责将底板发送来的数据转发给dac芯片,是具体负责数据输出的工作单元。具体构成如图2所示。一个spi负责接收底板发送来的数据或者命令,两个spi负责将数据写入到dac芯片,每个芯片都有16路模拟输出引脚将数据输出;在系统开始运行时,pc首先将需要转换的数据通过usb发送给底板,然后底板再将数据分成对应的分组之后再发送给相应的子板,子板接收到数据之后将数据写入到dac芯片的寄存器中,dac芯片等待刷新命令,在全部命令都发送完毕之后,底板主控芯片向每个子板按顺序发出刷新命令,子板主控芯片在接收到刷新命令之后立即向dac芯片发出刷新命令,之后dac芯片将存储在寄存器当中的数据按照既定顺序刷新到每个管脚,输出对应的电压,最后pc将继续将下一帧的数据发送给底板,开始新的一轮循环。具体的时序流程图如图3所示;在软件设计方面,底板软件设计主要起到将pc与子板进行链接的作用,usb接收到数据后按照顺序将数据输出到每一个子板,最后再向子板发送刷新输出的命令,具体过程如图4;子板的软件设计为:首先判断底板发送的信息是数据还是刷新命令。如果是数据,就将数据通过spi写入到dac芯片当中;如果接收到的信息是刷新命令,就通过spi将dac芯片的刷新命令写入,将模拟数据刷新到相应的引脚。具体的实现过程如图5。
29.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。