编辑器版本 ×
标准版

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 #第七届立创电赛#基于状态空间的平衡单车

简介:本项目基于状态空间的智能车控制算法,使用Infineon旗下TC264及Nations旗下N32G430C8L7作为主控芯片,实现给定的状态评价函数最优解求算。

开源协议: GPL 3.0

发布时间: 2022-09-20 09:55:02
  • 573
  • 29
  • 19
描述

题目要求

      本文的题目叫做“基于状态空间的平衡单车”,不知道大家了不了解智能车,由于参加过两届智能车的原因,所以给自己留下来很多那么难忘的回忆,还记得学长说过的一句话“做比赛的目的不是为了拿奖,而是为了学习更多的东西”,大一的时候是实话确实没有感觉到什么,但是现在确实有深深的感触,时间过得太快了,哎,有点感慨了75yfrD9yNLTaVpxron5vZ20hJo2wyplPOD1dEeSC.png,怎么说,希望看到这篇文章的人,继续加油。(希望官方不要生气哈,提了一嘴其他的比赛,其实立创电赛挺好的,嗯 wXDU8K3hX1BaRiYuxx15akoL7paTfuCfCCLO2opV.gif,对于我们这种搞硬件的,真的是一个很不错的机会,起码给了我这一次写这篇文档的机会嘛)

题目分析

    本项目使用TC264及N32G430C8L7,自我感觉其实TC264绝对够用,但是吧,由于参加训练营的原因,所以了解到了N32G430这款芯片,而且还是国产的,那不得走一波bn1xFNL72cWniYeHrIezIgkghimpiooEaC1g2tSo.png,于是第三套板子就出来了,TC264+N32G430,一些简单的让N32G430跑,一些复杂的让TC264跑,一主一副完美搭佩,而且串口通信不也来了DZEUJL9ZkPbWfhLSAocp5r6TitHID2OnNvNOCW91.png

总体设计框图:

ZfHQalnd9FntrkgrakVrZH3oCIkyvq3afsdeM2i0.png

原理图设计说明

(1)主控芯片选择

          TC264:

          ☆ 处理器:TC264,最高主频200MHz,双核TriCore™架构;

          ☆ TriCore™内置的DSP功能;

          ☆ 程序存储器:容量高至2.5MB、带ECC(纠错编码)保护的闪存;

          ☆ 数据存储器:容量高至752KB、带ECC(纠错编码)保护的RAM,用于存储雷达信息和摄像头的图像信息;

          ☆ 96KB EEProm,支持125k个读写周期;

          ☆ 4个12位SAR ADC转换器;

          ☆ 支持100Mbit以太网;

          ☆ 支持FlexRay、CAN、CAN FD、LIN和SPI;

          ☆ 定时器模块(GTM、CCU6、GPT12);

          ☆ 用于实现处理器间通讯的高速串行接口;

          ☆ 用于实时视觉和雷达数据跟踪的2.5 GHz高速轨迹端口;

          ☆ 板上集成DAP电路,通过Mini USB连接电脑进行仿真调试

          ☆ DAP仿真调试接口

          ☆ DC-DC电源芯片TLE42744G V33

          ☆ 30x2,32x1,20x1路扩展口

          N32G430C8L7:

          ☆ 32 位 ARM Cortex-M4 内核+ FPU,支持 DSP 指令和 MPU
          ☆ 内置 1KB 指令 Cache 缓存,支持 Flash 加速单元执行程序 0 等待
          ☆ 最高主频 128MHz,160DMIPS
          ☆ 高达 64KByte 片内 Flash,支持加密存储、分区管理及数据保护,1 万次擦写次数,10 年数据保持
          ☆ 高达 16KByte 片内 SRAM, Stop2 模式保持,Standby 模式可配置为保持
          ☆ 支持 Run、Sleep、Stop0、Stop2、Standby 模式
          ☆ 1 个 12bit 4.7Msps ADC,12/10/8/6bits 可配置,多达 16 路外部单端输入通道, 3 个内部单端输入通道,支持差分模式
          ☆ 3 个高速比较器,内置 64 级可调比较基准
          ☆ HSE: 4MHz~32MHz 外部高速晶体
          ☆ LSE: 32.768KHz 外部低速晶体
          ☆ HSI: 内部高速 RC 8MHz
          ☆ LSI: 内部低速 RC 40KHz
          ☆ MCO: 支持 2 路时钟输出,可配置 SYSCLK、HSI、HSE、LSI、LSE、可分频的 PLL 时钟输出
          ☆ 支持上电/掉电/外部引脚复位
          ☆ 支持看门狗复位、软件复位
          ☆ 支持可编程的电压检测
          ☆ 4 个 U(S)ART 接口,其中 2 个 USART 接口(支持 ISO7816, IrDA,LIN),2 个 UART 接口
          ☆  2 个 SPI 接口,主模式速率高达 18 Mbps,从模式速率高达 32 Mbps,支持 I
          ☆ 2 个 I2C 接口,速率高达 1 MHz,主从模式可配,从机模式下支持双地址响应
          ☆ 1 个 CAN 2.0A/B 总线接口,速率高达 1Mbps

(2)电源模块

          流程图如下图:

          v5uLP6pMHfxuDZrRBYwy8LsGay97aqR5nZxI1lxn.png

          ①稳5V电源模块

              在5V电源模块设计中,我们采用的是DC-DC电源方案,使用的是TI公司开关电源芯片TPS7350产生5V电压为传感器供电,电路中陶瓷旁路电容器可以改善负载的瞬态响应和噪声抑制。

ZJblph8RuPh5L1wuG3EZBvz4qJMGhpG0FmKUZK0R.png

          ②稳3.3V电源模块

              此部分电路采用3.3V稳压芯片RT9013供电,其中核心板也是此芯片供电,其输入和输出端采用无极性电容进行滤波。

                                                                                         YX2oU7AZ8WFXiJb259oQ5RweM97r2WSLcV9pfw7e.pngEZBLanszWPctTTPEvJ0lB6aOCozmhKrnEHkVYOo1.png

          ③电机驱动模块

       电机驱动器采用mos管搭建H桥电路,使用全桥驱动器HIP4082驱动,HIP4082是英特矽尔公司的驱动芯片,它最大输出电压可达80V,输出电流达到1.3A,输入PWM频率最高可达 200Khz,一块HIP4082配合外围电路组成H桥即可驱动一路电机,具有输出电流大,设计方便的特点,完全满足带载电机的需求。

           eNcJnY5giTcdTcF1S92K1Oz2hxHWICpUnn8mzWPO.png

其工作原理如下,打开Q1、Q4,关断Q2、Q3,此时电流可经过Q1、电机M、Q4即可完成电机的正转。如图5.2所示。打开Q2、Q3,关断Q1、Q4,此时电流可经过Q2、电机M、Q3即可完成电机的反转。

93EDiZWRXpI0ZRvxZGxkHAmy0dMUfjH1cDFjz2UI.png

PCB设计说明

  1. 20mil线宽–>1A电流,0.5mm过孔–>1A电流
  2. 原理图检查选项中,将悬浮网络,单端网络,修改成致命错误,然后编译;
  3. 焊盘上不要打孔,容易出现漏锡和立碑;
  4. 扇孔的好处:1)缩短回流路径;2)打孔占位;
  5. 缝合地过孔,减小回流路径,天线部分用地过孔包裹;(晶振同理)
  6. 调整丝印的时候,只打开丝印层,阻焊层,板框层即可;
  7. 电解电容滤除低频信号,独石电容,瓷片电容滤除高频信号;
  8. TPS7350 小压差,最大电流500ma;
  9. 功率开关器件MOSFET,开关速度可达KHz至MHz:
  10. PCB完成后,一定记得DRC检查;
  11. 旁路电容:铝解电容和钽电容比较适合作旁路电容,一般为10~470μ F \mu FμF
  12. 有源晶振需要外接供电,无源晶振只接2个晶振引脚就可以了

软件说明

以下程序为模块测试程序

#include "headfile.h"
#pragma section all "cpu0_dsram"
//将本语句与#pragma section all restore语句之间的全局变量都放在CPU0的RAM中
uint16 duty;//定义舵机占空比控制变量
uint16 speed1,count;//定义电机占空比控制变量及编码器计数变量

//工程导入到软件之后,应该选中工程然后点击refresh刷新一下之后再编译
//工程默认设置为关闭优化,可以自己右击工程选择properties->C/C++ Build->Setting
//然后在右侧的窗口中找到C/C++ Compiler->Optimization->Optimization level处设置优化等级
//一般默认新建立的工程都会默认开2级优化,因此大家也可以设置为2级优化

//对于TC系列默认是不支持中断嵌套的,希望支持中断嵌套需要在中断内使用enableInterrupts();来开启中断嵌套
//简单点说实际上进入中断后TC系列的硬件自动调用了disableInterrupts();来拒绝响应任何的中断,因此需要我们自己手动调用enableInterrupts();来开启中断的响应。
int core0_main(void)
{
    get_clk();//获取时钟频率  务必保留
    //用户在此处调用各种初始化函数等
    //duty = 750;
    count = 2000;
    gtm_pwm_init(ATOM1_CH1_P33_9,50,duty);//舵机PWM接口初始化
    ips114_init();//ips1.14寸屏幕初始化
    //mt9v03x_init();//
    gpt12_init(GPT12_T2,GPT12_T2INB_P33_7,GPT12_T2EUDB_P33_6);//编码器初始化
    gtm_pwm_init(ATOM0_CH6_P02_6,17*1000,count);//电机PWM接口初始化

    //等待所有核心初始化完毕
    IfxCpu_emitEvent(&g_cpuSyncEvent);
    IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);
    enableInterrupts();

    //注意 从V1.1.6版本之后  printf打印的信息从串口输出具体可以学习库例程Printf_Demo
    //注意 从V1.1.6版本之后  printf打印的信息从串口输出具体可以学习库例程Printf_Demo
    //注意 从V1.1.6版本之后  printf打印的信息从串口输出具体可以学习库例程Printf_Demo
    while (TRUE)
    {
        //用户在此处编写任务代码
        pwm_duty(ATOM1_CH1_P33_9,duty);
        pwm_duty(ATOM0_CH4_P02_4,count);
        //if(mt9v03x_finish_flag)
        //{
            //ips114_displayimage032(mt9v03x_image[0],MT9V03X_W,MT9V03X_H);
            //mt9v03x_finish_flag = 0;
        //}
        speed1=gpt12_get(GPT12_T2);
        gpt12_clear(GPT12_T2);
        ips114_showuint16(0,0,speed1);
    }
}

#pragma section all restore

 

实物展示说明

其实自己做了好多好多版本,主要是想试一下,对,有想法的话,不去试一下怎么可以呢,不说了,上图

ptB8FHIL0a67DBumKMTpuEknsl3gdpFuCtXPu4ea.jpeg

GManWMyzhhucegsD7huNylXvm3P7Tx5gzZQoStYQ.jpeg

BKly7O8WvFceNC3gcCNbrPnWiAmLuuX43MPPOOwM.jpeg

再看

hsA6upyDlWPkmn0w707aUhqXJc56Hp8L5UBKxxrt.jpeg

再看

s68rEerHN18niw1XVpr8ar7FRisKvntaQzkipB2Q.jpeg

nuMI1p9cZPMYxoYXQGJg7ZIzLH4sEtE4BdyAAb0Y.jpeg

7h7tsdYTiyf6TbxNSO4ZO8SyFEWctvk3jgMsakXQ.jpeg

再看

LacaMB9ti7REGSmlIP2SINouB3cXl8PQYzXcRDFL.jpeg

你以为这样就结束了,不

pMQa9WEmg64xaUsnSzIQIevsEI2KoXTxUsWrVGLV.jpeg

……

最终:

XpLuLJAvqogiocQWe4XiEMUHxbdKT5HFKfSgPBzh.pngJQMZIcCIN8x9OcqPDESItagNv6RYZlSzxqn1mVRB.png

演示视频

视频源文件发在了网盘里面,想要的可以下,链接如下:

https://lecloud.lenovo.com/share/wF14vw4HVUYNkE2C

设计图
原理图
1 /
PCB
1 /
暂无
ID Name Designator Footprint Quantity BOM_Supplier BOM_Manufacturer Part BOM_Manufacturer BOM_Supplier Part
1 100nF C1,C2 C0805 2 LCSC CC0805KRX7R9BB104 YAGEO C49678
2 10uF C3,C4 C0805 2 LCSC CL21A106KOQNNNE SAMSUNG C1713
3 22uF C5 CAP-TH_BD6.3-P2.50-D0.6-FD-1 1 LCSC SPZ1HM220E07O00RAXXX AISHI(艾华集团) C2691855
4 10uF C6 CAP-SMD_L3.2-W1.6-RD 1 LCSC TAJA106K010RNJ AVX C7177
5 4.7uf C57,C58 C0603 2 LCSC C0603X5R475K160NT SANYEAR(叁叶源) C466777
6 0.1uf C59 C0603 1 LCSC C0603X5R475K160NT SANYEAR(叁叶源) C466777
7 100nf C60 C0603 1 LCSC C0603X5R475K160NT SANYEAR(叁叶源) C466777
8 HC-1.25-3PWT CN1 CONN-SMD_HC-1.25-3PWT 1 LCSC HC-1.25-3PWT HCTL(华灿天禄) C2845380
9 IN5819 D2,D4 SOD-123_L2.7-W1.6-LS3.7-RD-3 2 LCSC 1N5819G-CA2-R UTC C89634
10 WJ500V-5.08-2P-14-00A P1,P2 CONN-TH_2P-P5.00_WJ500V-5.08-2P 2 LCSC WJ500V-5.08-2P-14-00A ReliaPro C8465
11 LR7843 Q6,Q7,Q8,Q9 TO-252-2_L6.6-W6.1-P4.57-LS9.9-TL-CW 4 LCSC NTD4858NT4G ON C15955
12 10R R42,R43,R44,R45 R0603 4 LCSC TNPW0603220RBEEA VISHAY(威世) C2078993
13 10K R46 R0603 1 LCSC TNPW0603220RBEEA VISHAY(威世) C2078993
14 1K R49,R50 R0603 2 LCSC TNPW0603220RBEEA VISHAY(威世) C2078993
15 XKB5858-Z SW1 SW-TH_6P-L5.8-W5.8-P2.00-LS4.5-BL 1 LCSC XKB5858-Z XKB Enterprise C318868
16 L78M05ABDT-TR U1 TO-252-2_L6.5-W6.1-P4.58-LS10.0-TL 1 LCSC L78M05ABDT-TR STMicroelectronics C58069
17 B0512S-1WR3 U17 PWRM-TH_BXXXXS-1W 1 LCSC B0512S-1WR3 MORNSUN C133158
18 HIP4082IBZT U18 SOIC-16_L9.9-W3.9-P1.27-LS6.0-BL 1 LCSC HIP4082IBZT Intersil C50123
19 74LVC245APW-Q100J U19 TSSOP-20_L6.5-W4.4-P0.65-LS6.4-BL 1 LCSC 74LVC245APW-Q100J Nexperia C548513

展开

添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

  • 开源平台公众号