CN110347574B - 一套终端节点的辅助开发系统 - Google Patents

一套终端节点的辅助开发系统 Download PDF

Info

Publication number
CN110347574B
CN110347574B CN201810291633.0A CN201810291633A CN110347574B CN 110347574 B CN110347574 B CN 110347574B CN 201810291633 A CN201810291633 A CN 201810291633A CN 110347574 B CN110347574 B CN 110347574B
Authority
CN
China
Prior art keywords
data
adc
fifo
usb
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810291633.0A
Other languages
English (en)
Other versions
CN110347574A (zh
Inventor
张毓
弭强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Huoling Information Technology Co ltd
Original Assignee
Nanjing Huoling Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Huoling Information Technology Co ltd filed Critical Nanjing Huoling Information Technology Co ltd
Priority to CN201810291633.0A priority Critical patent/CN110347574B/zh
Publication of CN110347574A publication Critical patent/CN110347574A/zh
Application granted granted Critical
Publication of CN110347574B publication Critical patent/CN110347574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Abstract

一套终端节点的辅助开发系统,用于加快嵌入式终端的软硬件开发。它包括线路耦合、可变增益放大器VGA、模数转换器ADC、单片机MCU、USB收发器、计算机,以及相关软件。ADC或应用程序可以把待观察的数据存入FIFO,之后传输到计算机的matlab程序中处理。

Description

一套终端节点的辅助开发系统
技术领域
本系统涉及嵌入式软硬件的开发,尤其是在嵌入式硬件平台上为应用软件的开发提供调试和验证。
背景技术
目前,随着智能终端和各种物联网的发展,涌现出种类繁多且数量巨大的中端节点。它们的开发和验证成为嵌入式开发领域的主要工作之一。与此相应的,软硬件尤其是软件的开发和调试成为研发人员的重担。常见的软件在线调试有以下方式:
(1)JTAG仿真器
使用集成开发环境加JTAG仿真器进行开发是目前采用最多的一种调试方式。但有时也会受到开发环境的限制。比如,
用Keil联机调试程序时,开512字节的大数组,最终在监视窗口中仅能看到前300个字节,后面的被省略了;
(2)驻留监控
驻留监控软件运行在目标板上,而集成开发环境通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,从而控制程序的执行、读写寄存器等。这种方式行之有效,并且在嵌入式实时操作系统中,驻留监控软件本身就成为操作系统的一个任务了。只是这种方式需要设计一套完善的调试控制程序,这本身比较耗时。
而实际研发中,有不少单片机根本没有提供自带的调试功能(出于设计周期、功耗、成本等考虑),就更需要一种简便易行的辅助调试系统。
发明内容
针对上述情况,本方案主要目的是为了提供一种便于使用而代价又不大的辅助开发系统,用于加快嵌入式终端的软硬件开发。其有益效果是:
(1)它可以提供两种用途:直接提取ADC数据用于matlab上做算法验证、提取程序的中间结果用于调试。这在权利要求2中有所体现。
(2)充分利用了硬件性能:
对FIFO的地址做回卷(RollBack)控制(示意图为图2),确保在读写地址跨越FIFO边界时能正确回卷并计算出正确的深度;而在典型应用下将USB包长设置为恒定的64字节,正好能使得每个令牌间隙中有满负荷的16个数据包,这比其它任何包长设置都能有效利用USB带宽(请参见附图4),从而使USB传输达到理论的极限值,充分发挥了硬件性能。这依赖于权利要求3和4。
将ADC的12位宽的数据按照每2个拼接为3字节(请参见图3),然后再在USB上传输,也充分利用了带宽。这在权利要求5有所体现。并且,这其中一个细节是,如果接收的字节数据发生截断导致不够3个字节的整数倍,即拼接到最后剩余1个或2个字节,按图3的拼接方式,恢复后的12位宽数据仅会造成低4位的误差(此时低4位直接置为零了)。这种方式使误差降低到最小,且不会引起数据错乱。
(3)用PWM方式,可以方便的使用单片机的数字引脚来控制可变增益放大器。这在权利要求1中提及。这种控制方式体积小、易实现,是软件与模拟电路的控制接口的首选。
另外,本系统在终端与上位机的交互中采用了USB接口,很通用并且操作简单,优于以往的以太网口、并口等。
本方案内容如下:
(如图1)一套终端节点的辅助开发系统,包括硬件电路板、计算机和运行于二者之上的软件,包括线路耦合、可变增益放大器VGA、模数转换器ADC、单片机MCU、USB收发器、计算机,其中:
所述线路耦合将外部信号耦合至本电路板;
所述可变增益放大器VGA将耦合至本电路板的信号放大;
所述数模转换器ADC将VGA放大后的信号转换为数字信号;
所述单片机MCU中包含一段存储器作为缓存FIFO、应用程序、USB的MAC层软件、以及PWM生成软件,该FIFO存入ADC的数据或所述应用程序的数据,所述USB的MAC层软件处理USB协议并从该FIFO中读取数据送到USB收发器中,所述PWM生成软件用脉冲宽度调制的方式生成控制信号连接到所述VGA;
所述USB收发器在所述USB的MAC层软件的控制下通过USB线缆传输数据;
所述计算机通过USB线缆与所述硬件电路板上的USB收发器相连,还包括:虚拟串口软件和matlab程序,其中虚拟串口软件接收USB传输的数据并以文件的方式存储到所述计算机的硬盘上,所述matlab程序从硬盘上读取该文件的数据。
当将本系统用作算法验证时,所述ADC的数据存入FIFO,传输到所述计算机的matlab程序中,用户用自己的算法程序对数据进行处理;当将本系统用作程序调试时,所述应用程序可以把待观察的数据存入FIFO,传输到所述计算机的matlab程序中,用户可以进行查看。
USB发送固定长度为max_pack的数据包,并且根据所述缓存FIFO的最大偏移max_fifo、当前读地址rp、当前写地址wp、以及max_pack,来判断是否发包:当rp大于wp并且max_fifo-rp+wp大于等于max_pack时,或者,当rp小于等于wp并且wp-rp大于等于max_pack时,USB的MAC层发数据包;其它情况下不发数据包。
在USB工作在全速full-speed模式或高速high-speed模式时,发包长度max_pack设置为64。
所述ADC位宽为12,在ADC的数据存入所述缓存FIFO时,每相邻两个ADC数据拼接成三个字节,具体是:第N+1个ADC数据的高8位存入FIFO的第k+1个字节,第N+2个ADC数据的高8位存入FIFO的第k+2个字节,第N+1个ADC数据的低4位存入FIFO的第k+3个字节的高4位,第N+2个ADC数据的低4位存入FIFO的第k+3个字节的低4位;与此相对应,所述计算机上的matlab程序从接收到的数据字节的起始字节开始,每3个字节还原出2个ADC数据,如果还原过程的最后剩余字节不足3个,则直接在每个剩余字节的后面补4位零从而各形成一个12位的ADC数据。
附图说明:
图1 为整体功能框图;
图2 为FIFO读写地址动态范围;
图3 为每2个ADC数据与3个字节的对应关系;
图4 为实际使用中典型的USB包序列。
具体实施方式:
本方案所述的辅助开发系统,需要硬件电路板、计算机和运行于二者之上的软件,包括线路耦合、可变增益放大器VGA、模数转换器ADC、单片机MCU、USB收发器、计算机,其中:
所述线路耦合将外部信号耦合至本电路板;
所述可变增益放大器VGA将耦合至本电路板的信号放大;
所述数模转换器ADC将VGA放大后的信号转换为数字信号;
所述单片机MCU中包含一段存储器作为缓存FIFO、应用程序、USB的MAC层软件、以及PWM生成软件,该FIFO存入ADC的数据或所述应用程序的数据,所述USB的MAC层软件处理USB协议并从该FIFO中读取数据送到USB收发器中,所述PWM生成软件用脉冲宽度调制的方式生成控制信号连接到所述VGA;
所述USB收发器在所述USB的MAC层软件的控制下通过USB线缆传输数据;
所述计算机通过USB线缆与所述硬件电路板上的USB收发器相连,还包括:虚拟串口软件和matlab程序,其中虚拟串口软件接收USB传输的数据并以文件的方式存储到所述计算机的硬盘上,所述matlab程序从硬盘上读取该文件的数据。
当将本系统用作算法验证时,所述ADC的数据存入FIFO,传输到所述计算机的matlab程序中,用户用自己的算法程序对数据进行处理;当将本系统用作程序调试时,所述应用程序可以把待观察的数据存入FIFO,传输到所述计算机的matlab程序中,用户可以进行查看。
1、在电路板上,需要开发并下载上述所需软件,并包括如下实施细节:
(1)USB发送固定长度为max_pack的数据包,并且根据所述缓存FIFO的最大偏移max_fifo、当前读地址rp、当前写地址wp、以及max_pack,来判断是否发包:当rp大于wp并且max_fifo-rp+wp大于等于max_pack时,或者,当rp小于等于wp并且wp-rp大于等于max_pack时,USB的MAC层发数据包;其它情况下不发数据包。
(2)在USB工作在全速full-speed模式或高速high-speed模式时,发包长度max_pack设置为64。
(3)所述ADC位宽为12,在ADC的数据存入所述缓存FIFO时,每相邻两个ADC数据拼接成三个字节,具体是:第N+1个ADC数据的高8位存入FIFO的第k+1个字节,第N+2个ADC数据的高8位存入FIFO的第k+2个字节,第N+1个ADC数据的低4位存入FIFO的第k+3个字节的高4位,第N+2个ADC数据的低4位存入FIFO的第k+3个字节的低4位。
2、在所述计算机上,需要准备上述所需软件,并实施如下操作:
(1)安装虚拟串口驱动;若虚拟串口识别,在PC的设备管理器的串口中会有显示,一般为“XXX Virtual COM Port(COM n)”,不同计算机的n值可能不同;
(2)打开虚拟串口,启动电路板,开始接收数据,软件会把数据存成二进制格式的文件;
(3)用MATLAB读取存储的数据:
单片机为12bit ADC,为保证虚拟串口的最大数据传输量大于ADC的采集的数据量,一方面控制ADC的采样频率;另一方面,在通信板的程序中,对ADC采集到的12bit的数据进行了拼接,取连续的两次ADC值,分别取其高8位存在2个字节中,取两个值的低4位拼接成第三个字节。所以在MATLAB中需要对采集到的数据进行拆分,还原数据。
还原过程:matlab读取存储的数据字节存入数组中,从数组的第一个元素开始,取三个元素,对第一个元素乘16,取第三个元素的高4位即该元素除以16得整数商,两个相加就是第一个ADC的值;取第二个元素乘16,加上第三个元素的低4位,就是第二个ADC的值。之后每三个元素一组进行还原操作,就能还原ADC的数据。如果还原过程的最后剩余字节不足3个,则直接在每个剩余字节的后面补4位零从而各形成一个12位的ADC数据。

Claims (3)

1.一套终端节点的辅助开发系统,包括硬件电路板、计算机和运行于二者之上的软件,其特征在于,包括线路耦合、可变增益放大器VGA、模数转换器ADC、单片机MCU、USB收发器、计算机,其中:
所述线路耦合将外部信号耦合至本电路板;
所述可变增益放大器VGA将耦合至本电路板的信号放大;
所述模数转换器ADC将VGA放大后的信号转换为数字信号;
所述单片机MCU中包含一段存储器作为缓存FIFO、应用程序、USB的MAC层软件、以及PWM生成软件,该FIFO存入ADC的数据或所述应用程序的数据,所述USB的MAC层软件处理USB协议并从该FIFO中读取数据送到USB收发器中,所述PWM生成软件用脉冲宽度调制的方式生成控制信号连接到所述VGA;
所述USB收发器在所述USB的MAC层软件的控制下通过USB线缆传输数据;
所述计算机通过USB线缆与所述硬件电路板上的USB收发器相连,还包括:虚拟串口软件和matlab程序,其中虚拟串口软件接收USB传输的数据并以文件的方式存储到所述计算机的硬盘上,所述matlab程序从硬盘上读取该文件的数据;
当将本系统用作算法验证时,所述ADC的数据存入FIFO,传输到所述计算机的matlab程序中,用户用自己的算法程序对数据进行处理;当将本系统用作程序调试时,所述应用程序可以把待观察的数据存入FIFO,传输到所述计算机的matlab程序中,用户可以进行查看;
USB发送固定长度为max_pack的数据包,并且根据所述缓存FIFO的最大偏移max_fifo、当前读地址rp、当前写地址wp、以及max_pack,来判断是否发包:当rp大于wp并且max_fifo-rp+wp大于等于max_pack时,或者,当rp小于等于wp并且wp-rp大于等于max_pack时,USB的MAC层发数据包;其它情况下不发数据包;
所述ADC位宽为12,在ADC的数据存入所述缓存FIFO时,每相邻两个ADC数据拼接成三个字节。
2.根据权利要求1所述的一套终端节点的辅助开发系统,其特征在于,在USB工作在全速full-speed模式或高速high-speed模式时,发包长度max_pack设置为64。
3.根据权利要求1所述的一套终端节点的辅助开发系统,其特征在于,当相邻两个ADC数据拼接成三个字节时,第N+1个ADC数据的高8位存入FIFO的第k+1个字节,第N+2个ADC数据的高8位存入FIFO的第k+2个字节,第N+1个ADC数据的低4位存入FIFO的第k+3个字节的高4位,第N+2个ADC数据的低4位存入FIFO的第k+3个字节的低4位;
与此相对应,所述计算机上的matlab程序从接收到的数据字节的起始字节开始,每3个字节还原出2个ADC数据,如果还原过程的最后剩余字节不足3个,则直接在每个剩余字节的后面补4位零从而各形成一个12位的ADC数据。
CN201810291633.0A 2018-04-03 2018-04-03 一套终端节点的辅助开发系统 Active CN110347574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810291633.0A CN110347574B (zh) 2018-04-03 2018-04-03 一套终端节点的辅助开发系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810291633.0A CN110347574B (zh) 2018-04-03 2018-04-03 一套终端节点的辅助开发系统

Publications (2)

Publication Number Publication Date
CN110347574A CN110347574A (zh) 2019-10-18
CN110347574B true CN110347574B (zh) 2023-12-22

Family

ID=68173646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810291633.0A Active CN110347574B (zh) 2018-04-03 2018-04-03 一套终端节点的辅助开发系统

Country Status (1)

Country Link
CN (1) CN110347574B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102305999A (zh) * 2011-06-24 2012-01-04 吉林大学 电动助力转向控制参数在线调试系统
CN105653461A (zh) * 2016-03-17 2016-06-08 烽火通信科技股份有限公司 一种单usb接口转多uart调试接口的转换系统
CN105825741A (zh) * 2015-12-25 2016-08-03 湖北工业大学 基于VC5509和CCSLink的DSP及语音信号处理一体化实验平台
CN107861866A (zh) * 2017-09-30 2018-03-30 南京国睿中数电子科技有限公司 一种基于uart接口的嵌入式系统调试方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384106B2 (en) * 2014-02-21 2016-07-05 Rolf Segger Real time terminal for debugging embedded computing systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102305999A (zh) * 2011-06-24 2012-01-04 吉林大学 电动助力转向控制参数在线调试系统
CN105825741A (zh) * 2015-12-25 2016-08-03 湖北工业大学 基于VC5509和CCSLink的DSP及语音信号处理一体化实验平台
CN105653461A (zh) * 2016-03-17 2016-06-08 烽火通信科技股份有限公司 一种单usb接口转多uart调试接口的转换系统
CN107861866A (zh) * 2017-09-30 2018-03-30 南京国睿中数电子科技有限公司 一种基于uart接口的嵌入式系统调试方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于MPC860/VxWorks的嵌入式系统开发;韩雪琴;丁汉清;;微计算机信息(第17期);全文 *
基于USBN9604固件程序调试系统的设计;刘兆凯, 陈星, 孙晓燕;现代电子技术(第22期);全文 *
基于网络处理器的自相似流量仿真系统;李新磊;郑康锋;杨义先;;高技术通讯(第04期);全文 *

Also Published As

Publication number Publication date
CN110347574A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
US7010638B2 (en) High speed bridge controller adaptable to non-standard device configuration
US6961787B2 (en) Method and apparatus for updating task files
US7710969B2 (en) Rapid I/O traffic system
KR102466160B1 (ko) 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치
WO2006011963A1 (en) Processing receive protocol data units
US7460531B2 (en) Method, system, and program for constructing a packet
US6185521B1 (en) System and method for emulating mainframe channel programs by open systems computer systems
CN115499505B (zh) Usb网卡和通信方法
CN113032319A (zh) 基于fpga的车载系统数据传输方法及同步高速串行总线结构
CN112463700A (zh) 一种控制axi总线带宽的方法和装置
CN110347574B (zh) 一套终端节点的辅助开发系统
US6742146B2 (en) Techniques for providing data within a data storage system
CN117113442B (zh) 一种面向同态加密算法Paillier的数据通路的加速系统
CN108847997A (zh) 一种通过api接口进行通信的方法及其装置
CN109726604B (zh) 一种接触卡与终端之间的数据交换通信方法
CN115604070A (zh) 基于mctp协议的消息传输方法、装置、设备及介质
CN112312396B (zh) 一种NoC追踪数据的生成方法及相关装置
US20060282719A1 (en) Unique Addressable Memory Data Path
CN112835834B (zh) 数据传输系统
CN106452838A (zh) Usb设备模拟装置及方法
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
RU72772U1 (ru) Модуль-контроллер магистрального последовательного интерфейса
RU46869U1 (ru) Система однонаправленной передачи данных из сети общего пользования в сеть недоступную для общего пользования
CN111538688B (zh) 数据处理方法、装置、模组及芯片
CN113705821B (zh) 一种基于pcie的adc板卡实现波形绘制的方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant