- 博客(35)
- 资源 (4)
- 收藏
- 关注
原创 ROS的自定义msg发布与订阅实现
ROS的自定义msg生成简介:在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。msgs只是简单的文本文件,每行具有字段类型和字段名称,
2022-03-03 23:29:45
2489
原创 树莓派安装ubuntu20.4及VNC配置
进入系统镜像下载界面:Install Ubuntu on a Raspberry Pi | UbuntuUbuntu is an open-source operating system for cross platform development, there's no better place to get started than with Ubuntu on a Raspberry Pi.https://ubuntu.com/download/raspberry-pi选择需要下载的版本。下载
2022-02-14 23:53:43
3590
3
原创 SOC定时器与中断配置
SOC定时器与中断配置1 定时器与中断工作原理定时器原理:Soc每一个核拥有一个32位的私有定时器和一个32位的私有看门狗定时器,两个核还拥有一个共享的64位全局定时器。私有定时器工作方式是32位自减模式,当计数值递减到0时产生中断;8位的预分频器,支持1-0xff的分频;支持单次触发模式和自动重载模式,单次触发模式下,计数值递减到0后定时器停止,自动重载模式下,计数值递减到0后会从重加载寄存器拷贝计数值到计数寄存器中,产生中断后继续从该计数值执行递减操作。私有定时器和看门狗定时器的时钟为C
2020-08-15 09:40:57
1578
原创 SOC串口的配置
SOC串口的配置1 UART工作原理SoC共集成了12路的UART。这12路UART均可以配置为智能UART模式,由于我们的驱动是透传数据通信,所以不使用到智能模式。12路UART可以独立并行工作,每一路UART都有一个独立的FIFO,其大小为4k*8bit,发送和接收各为2k*8bit;通讯数据格式可以配置,默认是一个起始位、八位数据位、无校验、一个停止位;通讯波特率可通过软件设置,典型的波特率为38.4Kbps、76.8Kbps、115.2Kbps、614.4Kbps;最高波特率1Mbps;具有
2020-07-17 20:46:05
1758
原创 SOC的GPIO配置
SOC的GPIO配置1 GPIO工作原理Soc共集成40路双向GPIO,每一路GPIO的输入输出方向由方向寄存器来控制,管脚的输入输出电平值保存在相应的输入/输出值寄存器当中。外部信号输入至内部后经三级同步,再进行滤波,滤波宽度可通过相应的滤波宽度寄存器来选择配置,支持的滤波宽度范围为0~63个系统时钟周期。输入信号的脉冲宽度若能达到寄存器的设置值,则允许被采样,否则将被当做“毛刺”过滤。GPIO输出采用寄存器输出,通过写GPIO输出值寄存器直接将信号通过引脚向外部输出。GPIO模块的结构如图1所示
2020-07-16 20:21:55
2051
原创 SOC时钟配置
SOC时钟配置1 锁相环工作原理Soc的时钟产生单元(CGU)通过外部输入时钟和内部相位锁相环(PLL)和分频选择逻辑产生用于片内的不同频率的时钟。片内时钟频率的改变通过配置AHB总线全局控制模块单元内部锁相环寄存器实现。CGU单元内部包含三个锁相环,分别产生系统主时钟、DDR物理层时钟、以太网物理层时钟,其配置寄存器位于AHB总线全局控制模块。CGU模块还产生1553模块时钟与UART时钟。锁相环采用65nm工艺库中的PLLSM65LLFRAC锁相环,其最高输出频率为1.6GHz,包含小数
2020-07-16 19:26:32
1186
原创 国产化SOC开发计划
国产化SOC开发计划1 熟悉SOC的组成和开发套件的使用这个阶段是刚刚拿到国产化SOC开发板的最初阶段,该阶段需要完成的工作有:1,安装开发套件,并且学会使用开发套件,并且能够进行上电调试;2,粗略的过一遍开发板原理图,看看哪些外设需要开发驱动,以及整个SOC芯片对应引脚分布,以及重要器件的保护和电源分布以及上电要求;3,过一遍简单过一遍开发手册,了解芯片的功能概述和体系架构,通过芯片架构图了解其内部组成,核心性能的评估,总线连接关系和时钟的分布。该阶段的开发时间估计大概为3天左右。
2020-07-14 22:00:05
774
原创 电阻测试板软件设计
电阻测试板软件设计1 功能需求分析电阻测试板的主要功能是通过分压法测量多路电阻的阻值大小。通过两个STM32的多路路ADC采集被测电阻两端的电压,将该值通过SPI通信传送给FPGA,然后FPGA通过LOCAL端总线把该值传送给PLX9054,PLX9054再通过PCI总线将该值传送给主机,主机根据分压公式,计算出电压对应的电阻值。其结构组成如图1.1所示。图1.1 电阻测试板卡构成...
2019-10-07 22:50:11
986
原创 电源控制板软件设计
电源控制板软件设计1 功能需求分析电源控制板主要功能是控制电路输出多路28V电源,在控制的同时能够实时监测个电源输出的电流大小,在电流过大时能够及时切断,并且反馈给主机。核心控制器是STM32F429单片机,该模块与主机之间的通信采用RS422串口。根据电路分析可以知道其需要配置功能有:3路离散量输出、5路电源控制输出、1路RS422通信串口、1路RS232调试串口、5路电流传感器实时监测...
2019-10-07 22:44:43
964
原创 dsp图像数据流设计
DSP图像数据流设计DSP应用程序主要分为三个部分:采集、处理和显示。第一,采集是指应用层调用DSP底层驱动函数user_read_upp_data()将一帧RGB565视频格式数据储存到指定位置,该函数通过UPP接口接收FPGA的YCBCR图像数据,并按照特定公式转换成RGB565图像放置在用户指定的数组里;第二,处理是指将应用层按照实际需求将采集得到的图像进行处理,并在原图像上叠加...
2019-06-21 19:09:15
1468
原创 DM8148的DDR3如何配置
1 准备工具需要下载两张excel表格,一张是根据DDR3芯片型号计算DM8148的DDR3控制器的时序参数的表格,一张是根据PCB板子布线中CK trace长度与DQS trace长度来计算DDR3控制器的物理偏移参数的表格。DM814x-DDR-Controller-Register-Configuration-spreadsheet-v1.0.xls(时序表格);RatioSeed...
2019-05-24 22:32:58
742
原创 stm32f429上移植ucosiii
建立文件夹:选择一个裸机工程,在user文件夹下建立如下文件夹,APP文件夹,表示系统应用层文件夹,BSP文件夹表示板级支持包文件夹,uc-cpu文件夹表示和cpu有关文件,uc-lib表示系统的库文件,ucos-iii表示ucos的源码文件夹,如图1。图1 移植文件夹建立文件拷贝,将部分文件拷贝到APP文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F42...
2019-05-23 22:51:56
1737
原创 第十一节,ZYNQ的AXI_DMA的使用
ZYNQ的AXI_DMA的使用1 DMA控制器架构原理AXIDMA:官方解释是为内存与AXI4-Stream外设之间提供高带宽的直接存储访问,其可选的scatter/gather功能可以将CPU从数据搬移任务中解放出来,在ZYNQ中,AXIDMA就是FPGA访问DDR3的桥梁,不过该过程受ARM的监控和管理。使用其他的IP(也是AXI4-Stream转AXI4-MM)可以不需要ARM管理。...
2019-05-23 22:48:26
11868
原创 第十节,uart远程加载
ZYNQ的UART加载1 加载方法ZYNQ的启动镜像是由FSBL程序(bootloader),PL配置文件(硬件比特流文件),应用层软件三个部分组成,其通过SDK的软件生成工具把三个部分按规定的格式拼凑成一个.bin文件,最终将这个文件写入到QSPIFLASH中,整个ZYNQ在配置好启动方式为FLASH启动后,便可做到上电自启动运行下载到FLASH中的用户程序。为了实现远程加载,抛开仿...
2019-04-16 21:21:30
1321
原创 第九节,ZYNQ的双核启动
ZYNQ的双核启动1 双核运行原理ZYNQ是一种主从关系的AMP架构,通过松散耦合共享资源,允许两个处理器同时运行自己的操作系统或者裸机应用程序,在各自运行自己的程序或者系统的时候,可以通过共享内存进行双核之间的交互。双核启动中,cpu0完成系统的初始化,控制cpu1的启动,与cpu1通信,读写共享内存;与cpu1进行通信,读写共享内存。共享资源防止冲突:1,DDR的内存使用,CP...
2019-04-16 21:13:39
4668
2
原创 第八节,ZYNQ的DMA
ZYNQ的DMA1 DMA的特点和体系结构DMA外设特点:DMA引擎拥有一个灵活的指令设置DMA的传输; 拥有8个cache线,每一个cache线宽度是4个字; 拥有8个可以并行的DMA通道线程; 拥有8个中断给中断控制器; 拥有8个DMA触发事件并且可以编码控制; 128个(64bit)的MFIFO,在传输的时候读写端可写入到此FIFO; 支持任意内存到内存的传输;整个...
2019-04-16 21:03:31
3852
翻译 第七节,ZYNQ的启动原理和配置
ZYNQ的启动原理和配置1 启动过程设备配置包含用于初始化和配置ps和pl的所有方法及过程。在软件控制下,ps内的DevC提供用于初始化和配置ps和pl的手段和方法,在zynq中提供两个模块用于控制配置过程:BootROM,一个静态存储块器块,当上电复位和暖复位后,有Cortex-A9的CPU执行这个内置程序; 设备配置单元:用于控制JTAG调试访问和提供连接到AES、HMAC和PC...
2019-04-16 21:00:41
1972
1
原创 第六节,ZYNQ的UART
ZYNQ的UART1 UART的特点ZYNQ的串口模块是一个全双工的异步接收和发送器,支持宽范围广的软件可编程模块,支持编程配置波特率和数据格式,同时提供自动的奇偶校验和错误检测方案,此外,还为APU提供了接收和发送FIFO。ZYNQ有两个UART器件,具有以下特性:可编程波特率发送器; 64个字节接收和发送FIFO; 数据位6,7或者8个比特位; 奇,偶,空格,标记或者没有...
2019-04-12 19:05:22
4914
原创 第五节,ZYNQ中断
ZYNQ中断1 中断类型ARM处理器支持7种异常情况:复位、未定义指令、指令预取终止、数据终止、中断请求(IRQ)和快速中断请求(FIQ)。复位(RESET):但处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面两种情况,一是系统加电时和系统复位时;二是跳转到复位中断向量处执行;数据访问中止(data abort):如果数据...
2019-04-03 21:52:45
2063
原创 第四节,ZYNQ的GPIO
ZYNQ的GPIO1 GPIO的结构体系ZYNQ的GPIO由4个BANK组成,其体系结构如图1所示。其中Bank0有32个GPIO引脚,Bank1有22个引脚,共54个GPIO引脚直接通过MIO连接到PS上,每个引脚可以通过寄存器的设置来确定该引脚为输入、输出或者中断,因为54个MIO引脚直接连接在PS上,像其他普通ARM一样,不需要通过XPS进行硬件配置,直接通过SDK编程即可。Ba...
2019-04-03 21:51:09
454
原创 NXP-JN516x的IIC总结
NXP-JN516x的IIC总结JN516x的SI总线可以超过一个主设备,但是多个主设备不可以同时使用,为了避免这类操作,内部会有一个仲裁机制。当是能IIC时,DIO14会是时钟Pin,DIO15会是双向的数据Pin,但是这两个信号都可以被映射到DIO16和DIO17。时钟是根据外设时钟分频得到的,其要求系统的外部时钟源必须在16MHz以上。对于这个芯片的手册,没有提供寄存器版本,只有操作其库...
2019-03-29 22:01:08
765
原创 第三节:ZYNQ的GPIO配置
GPIO的结构体系ZYNQ的GPIO由4个BANK组成,其体系结构如图1所示。其中Bank0有32个GPIO引脚,Bank1有22个引脚,共54个GPIO引脚直接通过MIO连接到PS上,每个引脚可以通过寄存器的设置来确定该引脚为输入、输出或者中断,因为54个MIO引脚直接连接在PS上,像其他普通ARM一样,不需要通过XPS进行硬件配置,直接通过SDK编程即可。Bank2和Bank3通过E...
2019-03-29 21:54:51
2687
原创 第二节,zynq新建工程,调试及加载
新建工程1,打开vivado2017.4,在出现的对话框中选择创建一个工程,如图1所示。这一步是为了创建一个ZYNQ的工程。图12,点击创建工程后,出现对话框如图2所示,然后点击对话框中的下一步。这一步表示这是一个创建工程的向导,通过该向导去新建一个工程。图23,此时会出现一个对话框如图3所示,这一步给工程命名,并且确定工程的保存路径,下面的小勾表示创建一个和工程名字相...
2019-03-28 22:40:17
2150
原创 第一节,ZYNQ开发流程
ZYNQ的开发也是先硬件后软件的方法。具体流程如下:(1).在Vivado上新建工程,增加一个嵌入式的源文件。(2).在Vivado里添加和配置PS和PL部分基本的外设,或需要添加自定义的外设。(3).在Vivado里生成顶层HDL文件,并添加约束文件。再编译生成比特流文件system.bit。(4).导出到SDK软件开发环境,在SDK环境里可以编写一些调试软件验证硬件和软件...
2019-03-28 22:01:13
1444
原创 zynq开发计划—第一阶段
第一阶段,主要是裸机使用,目前主要是这个阶段的学习和使用1,熟悉VIVADO,熟悉SDK,学会新建工程,掌握基本调试方法和工具的使用,掌握在SDK端生成固化程序并进行固化操作;2,熟悉GPIO的应用,熟悉BSP板级开发包的API函数,通过该API函数调试GPIO口的使用;3,熟悉ZYNQ的中断机制,通过BSP的API函数,调试CPU私有定时器外设;通过2和3的调试,基本掌握板级开发...
2019-03-28 21:54:16
894
2
原创 TI的C665X_DSP芯片的DDR3配置
6655时钟PLL配置与DDR3的配置1时钟概述PLL与PLL控制器的逻辑组成和处理流程如图1所示。PLL控制器能够通过PLLDIV1到PLLDIV16这些分频器灵活便利的配置和修改内部的时钟信号。PLL控制器也包含PLLM和SECCTL寄存器,如图1所示,这些寄存器能够配置好PLLM,OUTPUTDIVIDE和BYPASS的输出。PLL控制器决定DSP核心,外设或者其他模块...
2018-01-18 21:03:37
4158
原创 基于蓝牙与ARM的远程智能家居监测系统设计
提出一种基于蓝牙技术组建内网,采用STM32作为网关,并搭建WEB服务器,通过Internet将监测数据传送到用户端,实现对智能家居环境监测结果的查询.同时采用Android studio软件开发一款手机APP,实现与蓝牙模块的实时通信来查看监测数据,方便不同情况下查看监测结果。系统实现了对家居环境温度、湿度、光照强度、燃气烟雾等环境参数的实时监控及远程访问
2016-09-09 22:47:18
10278
3
原创 找资料总结1553B总线协议知识和HI-1575数据手册
2016-07-08从网上找资料总结1553B总线协议知识和HI-1575数据手册1 1553B总线特点传输速率:1Mbit/s字长度20bit包括同步域3bit,消息块16bit,奇偶位1bit。信息量最大长度32个字。传输方式:半双工方式。传输协议:命令/响应方式。故障容错:双冗余方式,第二条处于热备份状态。信息格式:BC->RT RT ->BC RT-> RT
2016-09-04 10:06:56
5751
STM32F429-IAP.rar
2020-05-01
NI CompactRIO数据采集系统
2015-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人