可自定义发送、接收通讯格式的差分双向通讯电路及方法与流程

文档序号:30157655发布日期:2022-05-26 08:05阅读:235来源:国知局
可自定义发送、接收通讯格式的差分双向通讯电路及方法与流程

1.本发明涉及数字信号、串行通讯技术领域,具体涉及一种可自定义发送、接收通讯格式的差分双向通讯电路以及应用于该电路的差分双向通讯方法。


背景技术:

2.电子产品的种类的穷出不尽。而不同设备之间的通讯交互,往往会因为功耗、性能、传输距离、容错率、安全等等而选择不同的通讯方式。而差分双向通讯便是一种常用的编码,其广泛用于无线充电设备上,其中包含最据代表性的无线充qi协议,也是采用差分双向编码,但当下缺少有相应的硬件模块支持该模式的通讯。
3.目前,以一些采用8位的单片机的小型电子产品去使用qi无线充为例,由于芯片资源有限,通过软件去做这种差分双向的接收发送会耗掉大量的资源,且效果并不理想。这就导致某些方案想采用qi无线充时,由于软件接收、发送时芯片资源的短板,被迫选择更昂贵的mcu或外搭一个专用于无线充的模组。这就导致了生产成本的大大增加,对这种小型消费电子设备的成本控制十分不友好。


技术实现要素:

4.本发明的目的在于提供一种mcu内自带的可自定义发送、接收通讯格式的差分双向通讯电路及其通讯方法,其主要解决了软件接收、发送时芯片资源短板的问题,提供了一种差分双向通讯硬件模块支持差分双向编码模式的通讯,可以有效控制和降低生产成本。
5.为解决上述问题,本发明所采用的技术方案如下:
6.一种可自定义发送、接收通讯格式的差分双向通讯电路,包括mcu芯片,在所述mcu芯片内设有一个差分双向通信模块,用于协助处理差分双向通讯的发送、接收,其中,所述差分双向通信模块包括发送模块以及接收模块;所述发送模块执行:发送数据、发送编码配置文件、位元发送、发送中断信号;所述接收模块执行:接收数据、接收编码配置文件、位元接收、错误位元识别、前导码接收、接收中断信号、容错率判断。
7.进一步的方案是,所述发送模块包括第一主时钟、由所述第一主时钟分频得到的第一计数器、发送数据fifo、发送配置fifo,所述第一计数器用于输出clk周期,所述发送数据fifo与所述发送配置fifo连接,并在每个clk周期结束时从预先配置好的发送配置fifo内取出数据格式。
8.更进一步的方案是,所述接收模块包括接收监控输入引脚、第二主时钟、由所述第二主时钟分频得到的第二计数器、接收数据fifo、接收配置fifo,所述第二计数器用于输出clk周期,由所述接收监控输入引脚接入输入信号,当开始接收数据后,所述第二计数器在每个clk周期后读取电平状态,根据所述接收配置fifo把接收的数据转化为位元,并以字节形式存放在所述接收数据fifo内。
9.更进一步的方案是,所述发送模块还包括第一中断模块,用于当发送数据fifo占用空间余下一半时触发中断;
10.所述接收模块还包括第二中断模块,用于当所述接收数据fifo内有数据时触发中断。
11.一种可自定义发送、接收通讯格式的差分双向通讯电路的通讯方法,所述可自定义发送、接收通讯格式的差分双向通讯电路是采用上述的可自定义发送、接收通讯格式的差分双向通讯电路,该方法包括以下步骤:将需要发送的数据传入发送模块的发送数据fifo,由系统时钟分频得到的计数器,在每个周期结束时从预先配置好的发送配置fifo内取出数据格式,根据取出的数据格式一一对应需发送的数据,并翻转输出信号,从而输出差分双向的发送信号;当信号输入时,当接收模块的接收监控输入引脚捕捉到信号的上升或下降沿时,开始接收信号;当信号开始接收后,计数器在每个周期读取电平状态,根据接收配置fifo里面的配置信息,将接收到的高低电平信号转化为位元,并将位元转换成每个字节存放在接收数据fifo内。
12.进一步的方案是,在发送数据之前,还执行配置发送格式配置项,具体包括:start位:起始位可选择是否发送;当配置为发送时,该位元可选发送zero或one;data:数据发送的位长可配成1~8bit;
13.parity位:校验位可选择是否发送;当配置为发送时,可选字节的奇校验或偶校验模式;stop位:停止位可选择是否发送;当配置为发送时,该位元可选发送zero或one;zero/one位元:zero、one代表的位元可选择;当one编码格式选择为b1后,则zero编码格式自动选为b2;当one编码格式选择为b2后,则zero编码格式自动选为b1;lsb/msb:字节的高位先发、低位先发可选;空闲极性:总线空闲时的高、低极性可选。
14.更进一步的方案是,在数据发送时,每个bit位之间,即每个clk周期都会将电平翻转;在每个bit位中间,即1/2的clk周期处根据当前位的发送数据zero或one,再组合当前配置的编码格式选择翻转。
15.更进一步的方案是,在接收模块接收数据时,由接收模块执行:接收数据、接收编码配置文件、位元接收、错误位元识别、前导码接收、接收中断信号、容错率判断;在空闲状态时,判断是否有边沿变化,当有边沿变化产生时,开始接收数据,在1/4clk和3/4clk周期处分别读取电平信号,根据编码类型b1,b2把当前位元识别为one或zero。
16.更进一步的方案是,错误位元识别包括:根据双向码的特性筛查出无效位元,即检测时发现3/4clk周期的电平与下一个bit位5/4clk周期处的电平相等时,接收数据时检测到电平没极性变化而报错,其中,双向码的特性为:每个bit位之间都存在极性翻转。
17.更进一步的方案是,前导码接收包括:进入前导码接收模式,自动滤走前导码部分,当接收模块接收到的位元发生变化时,即b1变b2或b2变b1时即认为前导码发完毕,随后接收模块自动开始接收数据,其中,在前导码接收模式下,若干个前导码都会被过滤掉,直至检测到前导码接收模式结束后,才开始接收数据。
18.由此可见,本发明通过在mcu内添加一个差分双向通信硬件模块,用于协助处理差分双向通讯的发送、接收,在处理差分双向编码时,可以减少芯片其他资源的开销,降低编程人员在处软件处理的难度,使其采用差分双向通讯时,性能更好,更高效。
19.下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
20.图1是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例的原理图。
21.图2是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中发送模块的原理图。
22.图3是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中接收模块的原理图。
23.图4是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中位元编码格式的原理图。
24.图5是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例的位元发送时序图。
25.图6是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例的位元接收时序图。
26.图7是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中差分双向编码格式的原理图。
27.图8是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中关于无效位元的第一原理图。
28.图9是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中关于无效位元的第二原理图。
29.图10是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中关于前导码接收模式的原理图。
30.图11是本发明一种可自定义发送、接收通讯格式的差分双向通讯电路实施例中关于one编码配置的示例图。
具体实施方式
31.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.可自定义发送、接收通讯格式的差分双向通讯电路实施例:
33.参见图1,一种可自定义发送、接收通讯格式的差分双向通讯电路,包括mcu芯片10,在mcu芯片10内设有一个差分双向通信模块20(dbpp),用于协助处理差分双向通讯的发送、接收。
34.在本实施例中,差分双向通信模块20包括发送模块以及接收模块。
35.其中,发送模块执行:发送数据、发送编码配置文件、位元发送、发送中断信号。
36.其中,接收模块执行:接收数据、接收编码配置文件、位元接收、错误位元识别、前导码接收、接收中断信号、容错率判断。
37.如图2所示,发送模块包括第一主时钟11、由第一主时钟11分频得到的第一计数器12、发送数据fifo13、发送配置fifo14,第一计数器12用于输出clk周期,发送数据fifo13与
发送配置fifo14连接,并在每个clk周期结束时从预先配置好的发送配置fifo14内取出数据格式。
38.如图3所示,接收模块包括接收监控输入引脚、第二主时钟21、由第二主时钟21分频得到的第二计数器22、接收数据fifo23、接收配置fifo24,第二计数器22用于输出clk周期,由接收监控输入引脚接入输入信号,当开始接收数据后,第二计数器22在每个clk周期后读取电平状态,根据接收配置fifo24把接收的数据转化为位元,并以字节形式存放在接收数据fifo23内。
39.在本实施例中,发送模块还包括第一中断模块,用于当发送数据fifo13占用空间余下一半时触发中断。
40.在本实施例中,接收模块还包括第二中断模块,用于当接收数据fifo23内有数据时触发中断。
41.可自定义发送、接收通讯格式的差分双向通讯电路的通讯方法实施例:
42.本实施例提供一种可自定义发送、接收通讯格式的差分双向通讯电路的通讯方法,本实施例的可自定义发送、接收通讯格式的差分双向通讯电路是采用上述的可自定义发送、接收通讯格式的差分双向通讯电路,该方法包括以下步骤:
43.将需要发送的数据传入发送模块的发送数据fifo13,由系统时钟分频得到的计数器,在每个周期结束时从预先配置好的发送配置fifo14内取出数据格式,根据取出的数据格式一一对应需发送的数据,并翻转输出信号,从而输出差分双向的发送信号。
44.当信号输入时,当接收模块的接收监控输入引脚捕捉到信号的上升或下降沿时,开始接收信号;当信号开始接收后,计数器在每个周期读取电平状态,根据接收配置fifo24里面的配置信息,将接收到的高低电平信号转化为位元,并将位元转换成每个字节存放在接收数据fifo23内。
45.在发送数据之前,还执行配置发送格式配置项,具体包括:
46.start位:起始位可选择是否发送;当配置为发送时,该位元可选发送zero或one;
47.data:数据发送的位长可配成1~8bit;
48.parity位:校验位可选择是否发送;当配置为发送时,可选字节的奇校验或偶校验模式;
49.stop位:停止位可选择是否发送;当配置为发送时,该位元可选发送zero或one;
50.zero/one位元:zero、one代表的位元可选择,如图4所示;
51.当one编码格式选择为b1后,则zero编码格式自动选为b2;
52.当one编码格式选择为b2后,则zero编码格式自动选为b1;
53.lsb/msb:字节的高位先发、低位先发可选;
54.空闲极性:总线空闲时的高、低极性可选。
55.具体的,本发明在模块设计时为了最大限度支持更多的差分双向协议,每字节的常规主要组成部分(如表1至3)均可配置。
56.表(1):字节配置项
[0057] 配置项start可选data长度可配1~8bit
parity可选stop可选
[0058]
表(2):发送格式配置项
[0059][0060]
表(3):常规字节组成部分
[0061]
startx-bit-dataparitystop
[0062]
在数据发送时,每个bit位之间,即每个clk周期都会将电平翻转;在每个bit位中间,即1/2的clk周期处根据当前位的发送数据zero或one,再组合当前配置的编码格式选择翻转。
[0063]
在本实施例中,发送模块执行:发送数据、发送编码配置文件、位元发送、发送中断信号,具体为:
[0064]
发送数据fifo13:为加快数据传输,保障数据连续发送,减少中断处理,该模块拥有若干个存放发送数据的fifo。
[0065]
发送配置fifo14:模块允许发送中每个字节间的编码配置不相同,时以有跟发送数据fifo13一样深度的发送配置fifo14。
[0066]
位元发送:如图5所示,数据发送时每个bit之间,即每个clk周期都会将电平翻转。而每个bit中间,即1/2clk处会根据当前位的发送数据zero或one,再组合当前配置的编码格式选择翻转,如图11所示。
[0067]
发送中断:发送中断模块发送fifo占用空间余下一半时会触发中断。
[0068]
在本实施例中,在接收模块接收数据时,由接收模块执行:接收数据、接收编码配置文件、位元接收、错误位元识别、前导码接收、接收中断信号、容错率判断,具体为:
[0069]
接收数据fifo23:为降低软件访问寄存器频率,本发明在设计时加入了接收数据fifo23。
[0070]
接收配置fifo24:为能灵活接收各种编码格式的数据,本发明在设计时加入了接收配置fifo24,模块每配置1byte该fifo,便会根据接收配置的编码格式去接收1byte数据。
[0071]
位元接收:如图6所示,在空闲状态时,判断是否有边沿变化,当有边沿变化产生时,开始接收数据,在1/4clk和3/4clk周期处分别读取电平信号,根据编码类型b1,b2把当前位元识别为one或zero。可见,在空闲状态等待沿变化,当有沿变化产生时,就开始接收数据。具体的,数据接收的规则是:在开始后会在1/4clk和3/4clk处分别读取电平信号,如表
(4)所示。读取的电平信号有4种组合,两种类型,根据编码类型b1、b2型把当前位元识别为one或zero(按照配置项决定)。
[0072]
表(4):数据接收规则表
[0073][0074]
错误位元识别:根据双向码的特性筛查出无效位元,即检测时发现3/4clk周期的电平与下一个bit位5/4clk周期处的电平相等时,接收数据时检测到电平没极性变化而报错,如表(5)所示。其中,双向码的特性为:每个bit位之间都存在极性翻转,如图7所示。可见,双向码的特性是每bit之间都存在极性翻转,可以根据此特性筛查出无效位元,即检测时发现3/4clk电平与下bit,5/4处电平相等时,接收会认为电平没极性变化而报错,如表(5)、图8、9所示。
[0075]
表(5):双向码特性筛查表
[0076][0077]
前导码接收:如图10所示,进入前导码接收模式,会自动滤走前导码部分,当接收模块接收到的位元发生变化时,即b1变b2或b2变b1时即认为前导码发完毕,随后接收模块自动开始接收数据,其中,在前导码接收模式下,若干个前导码都会被过滤掉,直至检测到前导码接收模式结束后,才开始接收数据。可见,某些协议数据发送之初会有一段前导码,随后才开始发送数据,且前导码的个数一般不固定,这就导致要去接收这种未知长度的数据时十分困难,无线充qi协议便是如此。为解决这个问题本模块加入了前导码接收模式,前导码部分会被硬件自动滤走,等接收器接收到的位元发生变化时,即b1变b2或b2变b1时即认为前导码发完毕,随后数据会自动开始接收。如10,前导码若干个都会被滤掉,直至检测到前导码结束,才开始收数据。此功能极大满足了qi协议下作为数据接收端的需求。
[0078]
接收中断:当接收数据fifo23内有数据时,会触发中断。
[0079]
容错率:由于上述的位元识别机制,所以理论只要两设备之间时钟误差在
±
25%之内,数据接收均能正常接收数据,为系统时钟不准的mcu提供了兼容性。
[0080]
在实际应用中,qi无线充数据接收端,即差分双向通讯的接收端,可采用接收模块进行发送。qi无线充数据发送端,即差分双向通讯的发射端,可采用发送模块进行接收。如图11所示,one编码配置为b2类型,发送数据0xac/10101100b。
[0081]
由此可见,本发明通过在mcu内添加一个差分双向通信硬件模块,用于协助处理差
分双向通讯的发送、接收,在处理差分双向编码时,可以减少芯片其他资源的开销,降低编程人员在处软件处理的难度,使其采用差分双向通讯时,性能更好,更高效。
[0082]
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1