本发明涉及数据通信,尤其涉及一种低复杂度的串口读写寄存器的处理方法及装置。
背景技术:
1、在一些特定的开发需求中,需要ps参与的功能几乎没有,然后如果继续选定带有ps的芯片,对于资源来说是浪费,对于成本来说不满足经济型原则,同时fpga的寄存器功能无论在前期的调试中,还是后期的定位问题中,起着举足轻重的作用。所以在无ps的纯pl平台上,开发出一套能既简便又能满足技术人员调试以及定位问题的寄存器系统尤为重要。
技术实现思路
1、本发明的目的在于克服现有技术中的不足,提供一种低复杂度的串口读写寄存器的处理方法及装置,用于在无ps的pl平台上,通过上位机连接串口并搭载fpga的方式,实现串口读写pl寄存器的功能。
2、为达到上述目的,本发明是采用下述技术方案实现的:
3、第一方面,本发明提供了一种低复杂度的串口读写寄存器的处理方法,应用于无ps的纯pl平台上,所述纯pl平台包括依次连接的上位机、uart芯片以及fpga芯片,上位机的读写指令通过uart芯片的串口发射至fpga芯片,上位机读取的数据通过uart芯片的串口从fpga芯片接收;所述处理方法包括:
4、响应于接收到读写指令对应的串行数据,fpga芯片对所述串行数据进行串并转换得到并行数据;
5、将所述并行数据按照字符类型进行缓存,所述字符类型包括操作字符、地址字符以及数据字符;
6、根据所述操作字符确定其为写数据状态或读数据状态;
7、若所述操作字符为写数据状态,则将所述地址字符和所述数据字符进行ascii码向十六进制码的译码;
8、将写数据使能置为高电平,根据译码后的所述地址字符将译码后的所述数据字符赋值给相应地址对应的寄存器;
9、若所述操作字符为读数据状态,则将所述地址字符进行ascii码向十六进制码的译码;
10、将读取数据使能置为高电平,根据译码后的所述地址字符,将地址对应的寄存器赋值给待发送的数据字符;
11、将待发送的数据字符进行十六进制码向ascii码的译码,将译码后的待发送的数据字符进行并串转换得到待发送的串行数据,并发送。
12、可选的,所述读写指令对应的串行数据包括:
13、写操作:wrregxxxxyyyyyyyy,其中,代表空格字符,wrreg代表操作字符,xxxx代表地址字符,定义为16bit,yyyyyyyy代表数据字符,定义为32bit;
14、读操作:rdregxxxx,其中,rdreg代表操作字符。
15、可选的,所述串并转换包括:
16、设置第一计数器和第二计数器;
17、所述第一计数器从捕捉到uart芯片的串口的开始位被置为低电平时,开始计数,计数到系数数值减去1时,执行清零操作,并循环计数;
18、每当所述第一计数器计数到系数数值减去1时,所述第二计数器加1,所述第二计数器计数到9时,执行清零操作,并循环计数;
19、所述第二计数器的计数数值分别为1至8时,依次将串行数据按照先进的数据放入低位的lsb原则,将串行数据缓存至8bit缓存数据中,完成串行数据向并行数据的转换;
20、其中,所述系数数值的获取包括:
21、采用1s/波特率算出当前波特率下,传输1bit数据的所需时间;
22、通过所述所需时间除以单位时钟周期,得到传输1bit数据的所需单位时钟个数,将所述单位时钟个数作为系数数值。
23、可选的,所述将所述并行数据按照字符类型进行缓存包括:
24、设置第三计数器;
25、每当所述第二计数器计数到9时,所述第三计数器加1,所述第三计数器计数到n时,执行清零操作,并循环计数;
26、当所述并行数据为写数据状态时,n=18:
27、所述第三计数器的计数数值分别为0至5时,将并行数据按照从高位至低位的顺序,依次缓存至48bit的操作字符;
28、所述第三计数器的计数数值分别为6至9时,将并行数据按照从高位至低位的顺序,依次缓存至32bit的地址字符;
29、第三计数器的计数数值分别为10至18时,将并行数据按照从高位至低位的顺序,依次缓存至72bit的数据字符;
30、当所述并行数据为读数据状态时,n=9:
31、所述第三计数器的计数数值分别为0至5时,将并行数据按照从高位至低位的顺序,依次缓存至48bit的操作字符;
32、所述第三计数器的计数数值分别为6至9时,将并行数据按照从高位至低位的顺序,依次缓存至32bit的地址字符。
33、可选的,当所述并行数据为写数据状态或读数据状态时,操作字符任一字符不是其代表的ascii码值时,第三计数器复位。
34、第二方面,本发明提供了一种低复杂度的串口读写寄存器的处理装置,应用于无ps的纯pl平台上,所述纯pl平台包括依次连接的上位机、uart芯片以及fpga芯片,上位机的读写指令通过uart芯片的串口发射至fpga芯片,上位机读取的数据通过uart芯片的串口从fpga芯片接收;所述处理装置包括:
35、指令处理模块,被配置为响应于接收到读写指令对应的串行数据,fpga芯片对所述串行数据进行串并转换得到并行数据;
36、分类缓存模块,被配置为将所述并行数据按照字符类型进行缓存,所述字符类型包括操作字符、地址字符以及数据字符;
37、读写确定模块,被配置为根据所述操作字符确定其为写数据状态或读数据状态;
38、写操作模块,被配置为若所述操作字符为写数据状态,则将所述地址字符和所述数据字符进行ascii码向十六进制码的译码;将写数据使能置为高电平,根据译码后的所述地址字符将译码后的所述数据字符赋值给相应地址对应的寄存器;
39、读操作模块,被配置为若所述操作字符为读数据状态,则将所述地址字符进行ascii码向十六进制码的译码; 将读取数据使能置为高电平,根据译码后的所述地址字符,将地址对应的寄存器赋值给待发送的数据字符;将待发送的数据字符进行十六进制码向ascii码的译码,将译码后的待发送的数据字符进行并串转换得到待发送的串行数据,并发送。
40、与现有技术相比,本发明所达到的有益效果:
41、本发明提供了一种低复杂度的串口读写寄存器的处理方法及装置,1)应用在无ps的pl平台上,通过上位机连接串口并搭载fpga的方式,实现串口读写pl寄存器的功能,从而取代了ps通过总线读写寄存器的方式,降低了开发成本。2)本发明在使用串口读写pl寄存器时,考虑到适配不同串口的波特率,使系统更具通用性和兼容性。3)本发明在使用串口读写pl寄存器时,增加了由于误操作而引起的系统挂死,增强了系统的鲁棒性。4)本发明通过定义读写指令的操作字符,地址字符以及数据字符,十分清晰的展示了操作的流程,降低串口读写寄存器系统的复杂程度。
1.一种低复杂度的串口读写寄存器的处理方法,应用于无ps的纯pl平台上,其特征在于,所述纯pl平台包括依次连接的上位机、uart芯片以及fpga芯片,上位机的读写指令通过uart芯片的串口发射至fpga芯片,上位机读取的数据通过uart芯片的串口从fpga芯片接收;所述处理方法包括:
2.根据权利要求1所述的低复杂度的串口读写寄存器的处理方法,其特征在于,所述读写指令对应的串行数据包括:
3.根据权利要求2所述的低复杂度的串口读写寄存器的处理方法,其特征在于,所述串并转换包括:
4.根据权利要求3所述的低复杂度的串口读写寄存器的处理方法,其特征在于,所述将所述并行数据按照字符类型进行缓存包括:
5.根据权利要求4所述的低复杂度的串口读写寄存器的处理方法,其特征在于,
6.一种低复杂度的串口读写寄存器的处理装置,应用于无ps的纯pl平台上,其特征在于,所述纯pl平台包括依次连接的上位机、uart芯片以及fpga芯片,上位机的读写指令通过uart芯片的串口发射至fpga芯片,上位机读取的数据通过uart芯片的串口从fpga芯片接收;所述处理装置包括: