一种单总线通信方法、装置和电子设备与流程

文档序号:32995440发布日期:2023-01-18 00:08阅读:29来源:国知局
一种单总线通信方法、装置和电子设备与流程

1.本发明涉及通信技术领域,特别涉及一种单总线通信方法、装置和电子设备。


背景技术:

2.在现有技术中,是通过定时器中断产生延时,并且在中断函数中操作io口来实现主从设备的通信。因为每次io的翻转都需要产生一个定时器中断,这样在单总线协议的通信过程中,会产生大量的中断,这对cpu的运算资源是很大的浪费。特别是在实时操作系统中,大量中断的产生会严重降低实时操作系统的实时性。另外,在通信过程中,如果系统被更高优先级的中断长时间占用,更会造成定时器中断产生的延时不准,导致总线通信协议失败。


技术实现要素:

3.本发明实施例提供一种单总线通信方法、装置和电子设备,用以解决现有技术中,在通信过程中,由于中断数量多,导致的总线对系统的占用率高,操作系统的实时性差的问题。
4.为了解决上述技术问题,本发明实施例提供如下技术方案:
5.本发明实施例提供一种单总线通信方法,应用于主机设备,包括:
6.获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值;
7.所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成。
8.可选地,所述根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值之前,所述方法还包括:
9.控制所述io口翻转。
10.可选地,所述获取通过io口翻转发送数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值之后,所述方法还包括:
11.将所述第一比较计数值存储至所述主机设备的内存的第一内存空间中。
12.可选地,所述第一dma通道传输所述第一比较计数值的第一传输次数的值与所述第一翻转次数的值相等;
13.所述第一dma通道的内存寻址方式为增量式寻址方式。
14.可选地,所述获取通过io口翻转发送数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值之后,所述方法还包括:
15.根据所述比较寄存器的位数,设置所述第一dma通道的传输格式;
16.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
17.可选地,所述方法还包括:
18.获取通过io口翻转读取第二数据需要的多个第二翻转次数;
19.在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值;
20.通过第二dma通道,将所述第二比较计数值传输至所述主机设备的内存内,直到所述第二数据读取完成。
21.可选地,所述通过第二dma通道,将每一次io口翻转对应的第二比较计数值传输至所述主机设备的内存内之前,所述方法还包括:
22.将所述第二比较计数值存储至所述定时器的捕获寄存器内。
23.可选地,所述在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值之前,所述方法还包括:
24.配置用于存储所述第二比较计数值的第二内存空间。
25.可选地,所述第二dma通道传输所述第二比较计数值的第二传输次数的值与所述第二翻转次数的值相等;
26.所述第二dma通道的内存寻址方式为增量式寻址方式。
27.可选地,所述获取通过io口翻转读取数据需要的多个第二翻转次数之后,所述方法还包括:
28.根据所述比较寄存器的位数,设置所述第二dma通道的传输格式;
29.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
30.可选地,在初始化阶段,所述第一数据为复位脉冲信号数据;
31.所述第二数据为应答信号数据。
32.本发明实施例还提供一种单总线通信装置,应用于主机设备,包括:
33.第一获取模块,用于获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值;
34.第一处理模块,用于所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成。
35.可选地,所述装置还包括:
36.第一控制模块,用于控制所述io口翻转。
37.可选地,所述装置还包括:
38.第一存储模块,用于将所述第一比较计数值存储至所述主机设备的内存的第一内存空间中。
39.可选地,所述第一dma通道传输所述第一比较计数值的第一传输次数的值与所述第一翻转次数的值相等;
40.所述第一dma通道的内存寻址方式为增量式寻址方式。
41.可选地,所述装置还包括:
42.第一设置模块,用于根据所述比较寄存器的位数,设置所述第一dma通道的传输格式;
43.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
44.可选地,所述装置还包括:
45.第二获取模块,用于获取通过io口翻转读取第二数据需要的多个第二翻转次数;
46.第三获取模块,用于在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值;
47.第二处理模块,用于通过第二dma通道,将所述第二比较计数值传输至所述主机设备的内存内,直到所述第二数据读取完成。
48.可选地,所述装置还包括:
49.第二存储模块,用于将所述第二比较计数值存储至所述定时器的捕获寄存器内。
50.可选地,所述装置还包括:
51.第一配置模块,用于配置用于存储所述第二比较计数值的第二内存空间。
52.可选地,所述第二dma通道传输所述第二比较计数值的第二传输次数的值与所述第二翻转次数的值相等;
53.所述第二dma通道的内存寻址方式为增量式寻址方式。
54.可选地,所述装置还包括:
55.第二设置模块,用于根据所述比较寄存器的位数,设置所述第二dma通道的传输格式;
56.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
57.可选地,在初始化阶段,所述第一数据为复位脉冲信号数据;
58.所述第二数据为应答信号数据。
59.本发明实施例还提供一种电子设备,所述电子设备为主机设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上任一项所述的单总线通信方法的步骤。
60.本发明实施例还提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的单总线通信方法的步骤。
61.本发明的有益效果是:
62.本发明方案,通过获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值,可以实现将需要发送的数据转化成比较计数值,通过所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成,可以实现通过dma通道,将第一比较计数值不断填入比较寄存器中,从而实现数据的发送,且在数据发送完成后产生一次中断,降低总线对系统资源的占用,提高系统的整体性能,提升操作系统的实时性。
附图说明
63.图1表示本发明实施例提供的单总线通信方法的流程图之一;
64.图2表示本发明实施例提供的写操作的流程示意图;
65.图3表示本发明实施例提供的单总线通信方法的流程图之二;
66.图4表示本发明实施例提供的读操作的流程示意图;
67.图5表示本发明实施例提供的初始化流程示意图;
68.图6表示本发明实施例提供的单总线通信装置的结构示意图;
69.图7表示本发明实施例提供的电子设备的结构示意图。
具体实施方式
70.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
71.本发明针对现有技术中,在通信过程中,由于中断数量多,导致的总线对系统的占用率高,操作系统的实时性差的问题,提供一种单总线通信方法、装置和电子设备。
72.在进行本发明实施例的说明之前,首先对下面的描述中的一些概念进行解释说明。
73.单总线(1-wire)是美国dallas公司推出的外围串行扩展总线技术。与其它串行数据通信方式不同,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省i(input)/o(output)口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
74.直接存储访问(direct memory access,dma)用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何中央处理器(central processing unit,cpu)操作的情况下通过dma快速移动数据。这样节省的cpu资源可供其它操作使用。
75.通用定时器包含一个16位或32位自动重载计数器,该计数器由可编程预分频器驱动。它们可用于多种途径,包括测量输入信号的脉冲宽度(输入捕获)或生成输出波形(输出比较和脉冲宽度调剂(pulse width modulation,pwm))。使用定时器预分频器和时钟控制器预分频器,可将脉冲宽度和波形周期从几纳秒调制到几毫秒。定时器的多个独立通道可用于以下模式:输入捕获、输出比较、pwm生成,单脉冲模式输出。发生如下事件时生成中断或者dma请求:计数器上溢/下溢,计数器初始化;计数器启动、停止、初始化或通过内部/外部触发计数;输入捕获;输出比较。
76.现有的技术方案中,实现单总线通信协议的方式是通过定时器溢出中断和io口操作来实现的,具体实施方案如下:
77.主机拉低总线,并通过定时器溢出中断,在一定时间后拉高总线,从而产生一个复位信号,并在随后的一段时间内通过定时器中断不断地对总线进行检测,如果有低电平则说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。
78.若要写0,则主机通过定时器溢出中断把总线拉低最少60微秒直至写周期结束;若要写1,主机通过定时器溢出中断在总线上产生1微秒的低电平脉冲,表示写周期开始,并在定时器中断中,并在定时器中断中释放总线为高电平,一直到写周期结束。
79.主机通过定时器溢出中断在总线上产生一个1微秒的低电平脉冲,在定时器中断中释放总线到高电平,以让从设备把数据传输到单总线上。主机在包括前面的拉低总线电平1微秒在内的15微秒时间内,通过定时器溢出中断完成对总线的采样检测,采样时总线为低电平则确认为0,采样时总线为高电平则确认为1。
80.如图1所示,本发明实施例提供一种单总线通信方法,应用于主机设备,包括:
81.步骤101:获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值。
82.需要说明的是,所述主机设备可以为微控制单元(microcontroller unit,mcu),也可以为其他的具有处理器、存储器的电子设备。
83.写周期最少为60微秒,最长不超过120微秒,若主机想写0,则把总线拉低电平最少60微秒直至写周期结束。若主机想写1,则一开始先把总线拉低1微秒表示写周期开始,1微秒后就释放总线为高电平,一直到写周期结束。
84.在本发明实施例中,提出的具体的实现方式包括:cpu根据写操作流程计算发送数据需要产生的第一翻转次数和对应的第一比较计数值,可以实现将需要发送的数据转化成比较计数值。
85.步骤102:所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成。
86.在本发明实施例中,计算发送数据需要产生的第一翻转次数和对应的第一比较计数值后,设置定时器为输出比较模式,定时器使能触发dma通道请求,将第一个比较计数值先搬入定时器的比较寄存器,之后,定时器开始计数后,定时器的实际计数值与当前定时器的比较寄存器内的比较计数值相等的情况下,产生dma通道请求,通过第一dma通道,根据预设时序,将计算出的下一次翻转对应的第一比较计数值搬运到定时器的比较寄存器内,定时器再重新开始计数,等到当前所述定时器的比较寄存器内与定时器重新计数的实际计数值相等后,再根据预设时序,将计算出的下一次翻转对应的第一比较计数值搬运到定时器的比较寄存器内,重复上述步骤,从而实现通过第一dma通道,将第一比较计数值不断地搬运到定时器的比较寄存器内,直到数据发送完成,在数据发送完成后产生dma中断。由于在数据发送完成后产生一次中断,降低总线对系统资源的占用,提高系统的整体性能,提升操作系统的实时性。
87.可选地,所述根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值之前,所述方法还包括:
88.控制所述io口翻转。
89.在本发明实施例中,在主机设备的定时器处于输出比较模式下,在定时器的第一实际计数值与当前定时器的比较寄存器内的第一比较计数值相等的情况下,控制io口翻转,从而通过输出比较翻转产生数据的写操作波形。
90.可选地,所述获取通过io口翻转发送数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值之后,所述方法还包括:
91.将所述第一比较计数值存储至所述主机设备的内存的第一内存空间中。
92.在本发明实施例中,在计算出第一翻转次数以及每一次io口翻转对应的第一比较计数值之后,将第一计数值存入内存中。
93.可选地,所述第一dma通道传输所述第一比较计数值的第一传输次数的值与所述第一翻转次数的值相等;
94.所述第一dma通道的内存寻址方式为增量式寻址方式。
95.在本发明实施例中,设置第一dma通道的存储方向为由内存地址到定时器的比较寄存器,设置第一dma通道的长度,也就是传输第一比较计数值的第一传输次数的值与第一翻转次数的值相等,以及设置第一dma通道的内存寻址方式为增量式寻址方式。
96.可选地,所述获取通过io口翻转发送数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值之后,所述方法还包括:
97.根据所述比较寄存器的位数,设置所述第一dma通道的传输格式;
98.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
99.在本发明实施例中,根据定时器比较寄存器的位数设置第一dma通道的传输格式为字节传输模式、半字传输模式或字传输模式。
100.下面结合图2,具体说明写操作的流程。
101.根据写操作流程计算发送数据需要产生的第一翻转次数和对应的第一计数值,第一计数值存入内存中;根据定时器比较寄存器的位数设置dma为字节传输模式、半字传输模式或者字传输模式,设置dma为由内存地址到定时器比较寄存器,设置dma的长度为第一翻转次数,设置dma的内存寻址方式为增量式寻址方式;设置定时器模式为输出比较模式,定时器使能触发dma请求;启动定时器,使能dma中断,定时器会在定时器的第一实际计数值和比较寄存器中的第一比较计数值相等时翻转io口,同时产生dma请求将计算的第一比较计数值不断地搬运到定时器的比较寄存器,从而通过输出比较翻转产生数据的写操作波形,并在dma完成之后产生中断。
102.本发明实施例根据需要发出的总线时序,预先计算需要填入定时器比较寄存器的第一比较计数值和数据长度(第一翻转次数),将第一比较计数值存入内存中,通过定时器输出比较翻转产生总线io口的翻转,并且触发dma请求将下次的第一比较值填入定时器比较寄存器中,从而实现时序的输出。通过设定预设时序,通过dma传输第一比较计数值,可以解决通信过程中,一个脉冲的过程中被中断打断的问题,从而保证单个脉冲的宽度不被其他中断影响;由于只在数据发送完成后产生一次中断,最大限度降低总线对系统资源的占用,从而提高系统的整体性能,以及,最大限度的提升实时操作系统的实时性。
103.可选地,请参阅图3,所述方法还包括:
104.步骤301:获取通过io口翻转读取第二数据需要的多个第二翻转次数。
105.需要说明的是,读时序是总线把主机拉低后,在1微秒之后就得释放总线为高电平,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0,采样期内总线为高电平则确认为1。
106.在本发明实施例中,提出的具体操作流程包括:首先cpu根据读操作流程计算读取数据需要记录的总线翻转次数。
107.步骤302:在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值。
108.在本发明实施例中,设置定时器为输入捕获模式,获取每一次io口翻转对应的第二比较值。
109.步骤303:通过第二dma通道,将所述第二比较计数值传输至所述主机设备的内存内,直到所述第二数据读取完成。
110.在本发明实施例中,定时器使能触发第二dma通道请求,将触发所述io口翻转的所
述第二比较计数值传输至主机设备的内存中,直到第二比较计数值传输完成,产生dma中断,通过cpu根据第二比较计数值计算读取到的第二数据。由于在数据读取完成后产生一次中断,降低总线对系统资源的占用,提高系统的整体性能,提升操作系统的实时性。
111.可选地,所述通过第二dma通道,将每一次io口翻转对应的第二比较计数值传输至所述主机设备的内存内之前,所述方法还包括:
112.将所述第二比较计数值存储至所述定时器的捕获寄存器内。
113.在本发明实施例中,定时器会在触发所述io口翻转时,将第二比较计数器先存储到定时器的捕获寄存器内,之后再通过第二dma通道,将第二比较计数器传输至内存中。
114.可选地,所述在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值之前,所述方法还包括:
115.配置用于存储所述第二比较计数值的第二内存空间。
116.在本发明实施例中,需要预先分配对应的内存空间,用以记录读操作过程中总线翻转时的第二比较计数值。
117.可选地,所述第二dma通道传输所述第二比较计数值的第二传输次数的值与所述第二翻转次数的值相等;
118.所述第二dma通道的内存寻址方式为增量式寻址方式。
119.在本发明实施例中,设置第二dma通道的存储方向为由定时器的捕获寄存器到内存地址,设置第二dma通道的长度,也就是传输第二比较计数值的第二传输次数的值与第二翻转次数的值相等,以及设置第二dma通道的内存寻址方式为增量式寻址方式。
120.可选地,所述获取通过io口翻转读取数据需要的多个第二翻转次数之后,所述方法还包括:
121.根据所述比较寄存器的位数,设置所述第二dma通道的传输格式;
122.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
123.在本发明实施例中,根据定时器捕获寄存器的位数设置第二dma通道的传输格式为字节传输模式、半字传输模式或字传输模式。
124.下面结合图4,具体说明读操作的流程。
125.根据读操作流程计算读取数据需要记录的总线翻转的第二翻转次数,分配对应的内存空间,用以记录读操作过程的总线翻转时的第二比较计数值;设置dma为由定时器捕获寄存器到内存地址,设置dma的长度为第二翻转次数,设置dma的内存寻址方式为增量式寻址方式;设置定时器模式为输入捕获模式,定时器使能触发dma请求;启动定时器,使能dma中断,定时器会在捕获到总线翻转时将第二比较计数器值存入定时器的捕获寄存器,并通过产生dma请求将捕获寄存器的第二比较计数值不断地搬运到分配的内存中,在dma完成之后产生中断;dma中断中通过捕获到的总线翻转时的第二比较计数值,可以计算出读取到的数据值。
126.本发明实施例,根据需要读取的总线时序,计算需要捕获的总线io口翻转次数,分配相应的内存空间,通过定时器输入捕获记录总线io翻转的比较计数值,并且触发dma请求将比较计数值填入分配的内存中,从而计算出读取到的数据。根据读取时序,通过dma传输第二比较计数值,可以解决通信过程中,一个脉冲的过程中被中断打断的问题,从而保证单个脉冲的宽度不被其他中断影响;由于只在数据发送完成后产生一次中断,最大限度降低
总线对系统资源的占用,从而提高系统的整体性能,以及,最大限度的提升实时操作系统的实时性。
127.可选地,在初始化阶段,所述第一数据为复位脉冲信号数据;
128.所述第二数据为应答信号数据。
129.需要说明的是,初始化过程包括主机复位脉冲和从机应答脉冲。主机通过拉低单总线480至960微秒产生复位脉冲,然后释放总线为高电平。然后在15到60微秒后检测总线上是否有60到240微秒的低电平应答脉冲。主机接收到应答脉冲,则说明从设备准备就绪,初始化过程完成。
130.下面结合图5,具体说明初始化过程。
131.计算主机产生复位脉冲需要的第一翻转次数和对应的第一比较计数值,将第一比较计数值存入内存中;根据定时器比较寄存器的位数设置dma为字节传输模式、半字传输模式或者字传输模式,设置dma的传输方向为由内存地址到定时器比较寄存器,设置dma的长度为第一翻转次数,设置dma的寻址方式为增量式寻址方式;设置单总线的引脚使用定时器的输出比较引脚,设置定时器模式为输出比较模式,定时器使能触发dma请求;启动定时器,使能dma中断,定时器会在定时器的第一实际计数值和比较寄存器中的第一比较计数值相等时翻转io口,同时通过产生dma请求将计算的第一比较计数值不断地搬运到定时器的比较寄存器,从而通过输出比较翻转产生复位脉冲,并在dma完成之后产生中断;在dma中断中计算需要记录的第二翻转次数,分配对应的内存空间,准备记录总线翻转的第二比较计数值;设置dma的传输方向为由定时器捕获寄存器到内存地址,设置dma的长度为第二翻转次数,设置dma的寻址方式为增量式寻址方式;设置定时器模式为输入捕获模式,定时器使能触发dma请求;启动定时器,使能dma中断,定时器会在捕获到总线翻转时将第二比较计数器值存入定时器的捕获寄存器,并通过产生dma请求将捕获寄存器中的第二比较计数值不断地搬运到分配的内存中,在dma完成之后产生中断;在dma中断中通过计算捕获到的总线翻转时的第二比较计数值,可以判断是否收到从设备的应答脉冲。
132.本发明方案,通过定时器的输出比较模式触发dma请求,将内存中的计数值不断填入比较寄存器中,以产生总线上的输出波形;通过定时器的输入捕获事件触发dma请求,将总线翻转的计数值不断写入内存,通过对内存数据的计算得到总线上的输入数据;主机设备(mcu)预先将需要发送的数据全部转换为比较计数值,存入内存中,通过触发dma将数据转换成波形,不需要mcu的介入;主机设备(mcu)通过需要读取的全部数据长度,计算需要捕获的总线翻转次数,将计算出的翻转次数设置成dma的长度,通过输入捕获不断产生dma请求获取到全部数据后产生一次dma中断。
133.本发明方案,在复位、应答以及数据的读写过程中,保证了时序不会被其它中断打断,从而保证了单总线通信的成功率和准确性。本技术提案和现有技术中使用定时器中断来操作总线的方式不同,利用了定时器输出比较或者输入捕获事件来触发dma请求,通过dma请求,将捕获到的计数值自动存入内存中或者将内存中的计数值写入比较寄存器中来产生波形,这样在mcu触发dma和定时器之后的整个过程和mcu就无关,从而mcu上的中断不会影响到总线时序;在总线通信中,最大化的减少了通信中产生的中断,最大化的提升了系统的整体性能,同时最大化的提升了使用单总线的实时操作系统的实时性。本技术提案基于使用定时器输出比较或者输入捕获事件来触发dma请求来保证通信过程和mcu无关的前
提下,通过将需要发送或者读取的数据,预先全部转换成比较计数值或者全部通过输入捕获到内存中再进行计算,又进一步减少了dma中断的次数,从而实现了中断次数最少,提升系统性能和实时性。
134.如图6所示,本发明实施例还提供一种单总线通信装置,应用于主机设备,包括:
135.第一获取模块601,用于获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值;
136.第一处理模块602,用于所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成。
137.本发明实施例,通过获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值,可以实现将需要发送的数据转化成比较计数值,通过所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成,可以实现通过dma通道,将第一比较计数值不断填入比较寄存器中,从而实现数据的发送,且在数据发送完成后产生一次中断,降低总线对系统资源的占用,提高系统的整体性能,提升操作系统的实时性。
138.可选地,所述装置还包括:
139.第一控制模块,用于控制所述io口翻转。
140.可选地,所述装置还包括:
141.第一存储模块,用于将所述第一比较计数值存储至所述主机设备的内存的第一内存空间中。
142.可选地,所述第一dma通道传输所述第一比较计数值的第一传输次数的值与所述第一翻转次数的值相等;
143.所述第一dma通道的内存寻址方式为增量式寻址方式。
144.可选地,所述装置还包括:
145.第一设置模块,用于根据所述比较寄存器的位数,设置所述第一dma通道的传输格式;
146.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
147.可选地,所述装置还包括:
148.第二获取模块,用于获取通过io口翻转读取第二数据需要的多个第二翻转次数;
149.第三获取模块,用于在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值;
150.第二处理模块,用于通过第二dma通道,将所述第二比较计数值传输至所述主机设备的内存内,直到所述第二数据读取完成。
151.可选地,所述装置还包括:
152.第二存储模块,用于将所述第二比较计数值存储至所述定时器的捕获寄存器内。
153.可选地,所述装置还包括:
154.第一配置模块,用于配置用于存储所述第二比较计数值的第二内存空间。
155.可选地,所述第二dma通道传输所述第二比较计数值的第二传输次数的值与所述第二翻转次数的值相等;
156.所述第二dma通道的内存寻址方式为增量式寻址方式。
157.可选地,所述装置还包括:
158.第二设置模块,用于根据所述比较寄存器的位数,设置所述第二dma通道的传输格式;
159.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
160.可选地,在初始化阶段,所述第一数据为复位脉冲信号数据;
161.所述第二数据为应答信号数据。
162.需要说明的是,本发明实施例提供的单总线通信装置是能够执行上述的单总线通信方法的装置,则上述的单总线通信方法的所有实施例均适用于该装置,且能够达到相同或者相似的技术效果。
163.如图7所示,本发明实施例提供一种电子设备,所述电子设备为主机设备,包括:处理器700;以及通过总线接口与所述处理器700相连接的存储器710,所述存储器710用于存储所述处理器700在执行操作时所使用的程序和数据,处理器700调用并执行所述存储器710中所存储的程序和数据。
164.其中,所述电子设备还包括收发机720,收发机720与总线接口连接,用于在处理器700的控制下接收和发送数据;处理器700用于读取存储器710中的程序。
165.具体的,所述收发机720用于获取通过io口翻转发送第一数据需要的多个第一翻转次数以及每一次io口翻转对应的第一比较计数值;
166.所述处理器700用于所述主机设备的定时器处于输出比较模式下,在所述定时器的第一实际计数值与当前所述定时器的比较寄存器内的第一比较计数值相等的情况下,根据预设时序,通过第一dma通道,更新所述比较寄存器内的第一比较计数值为下一次io口翻转对应的第一比较计数值,直到所述第一数据发送完成。
167.可选地,所述处理器700还用于控制所述io口翻转。
168.可选地,所述处理器700还用于将所述第一比较计数值存储至所述主机设备的内存的第一内存空间中。
169.可选地,所述第一dma通道传输所述第一比较计数值的第一传输次数的值与所述第一翻转次数的值相等;
170.所述第一dma通道的内存寻址方式为增量式寻址方式。
171.可选地,所述处理器700还用于根据所述比较寄存器的位数,设置所述第一dma通道的传输格式;
172.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
173.可选地,所述收发机720还用于获取通过io口翻转读取第二数据需要的多个第二翻转次数;以及,在所述主机设备的定时器处于输入捕获模式下,获取每一次io口翻转对应的第二比较值。
174.所述处理器700还用于通过第二dma通道,将所述第二比较计数值传输至所述主机设备的内存内,直到所述第二数据读取完成。
175.可选地,所述处理器700还用于将所述第二比较计数值存储至所述定时器的捕获寄存器内。
176.可选地,所述处理器700还用于配置用于存储所述第二比较计数值的第二内存空间。
177.可选地,所述第二dma通道传输所述第二比较计数值的第二传输次数的值与所述第二翻转次数的值相等;
178.所述第二dma通道的内存寻址方式为增量式寻址方式。
179.可选地,所述处理器700还用于根据所述比较寄存器的位数,设置所述第二dma通道的传输格式;
180.其中,所述传输格式包括:字节传输格式、半字传输格式和字传输格式。
181.可选地,在初始化阶段,所述第一数据为复位脉冲信号数据;
182.所述第二数据为应答信号数据。
183.其中,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器700代表的一个或多个处理器和存储器710代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机720可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的终端,用户接口730还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。处理器700负责管理总线架构和通常的处理,存储器710可以存储处理器700在执行操作时所使用的数据。
184.本发明实施例还提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的单总线通信方法的步骤。
185.此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
186.因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
187.以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来
说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1