基于stm32的多功能时钟1——时钟显示

基于stm32的多功能时钟1——时钟显示,第1张

        读者们,大家好!

        接着上一章多功能时钟(绪论)的内容,在这一章中,我将介绍多功能时钟的时钟显示部分。话不多说,我们正式开始吧~

        多功能时钟,时钟显示功能是必不可少的。所以,我们利用stm32的定时器来计时。本来打算采用stm32的RTC实时时钟,但后来想,刚开始弄得时候,尽量简单一些,别一开始就给自己出难题,毕竟RTC实时时钟要配置的东西还挺多的。如果此次做得不错的话,后面可以再加RTC实时时钟。

        stm32不同于51,共有11个定时器,其中2个高级控制定时器(TIM1和TIM8),4个普通定时器(TIM2~TIM5)和2个基本定时器(TIM6和TIM7),以及2个看门狗定时器和1个系统滴答定时器。这里,我们采用普通定时器TIM2,并且开启定时器的中断,中断时间为1s,并且在中断函数里,模拟时钟的计时功能。

(1)配置嵌套中断控制器NVIC

void tim2_nvic_config(void)

{

    NVIC_InitTypeDef NVIC_InitStruct;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

    NVIC_InitStructNVIC_IRQChannel = TIM2_IRQn;

    NVIC_InitStructNVIC_IRQChannelPreemptionPriority = 2;//抢占优先级为2

    NVIC_InitStructNVIC_IRQChannelSubPriority = 0;//子优先级为0

    NVIC_InitStructNVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&NVIC_InitStruct);

}

        这里,我们只需对NVIC_InitStruct结构体的每个元素赋值,其中TIM2_IRQn为定时器TIM2中断线,设置优先级组为2,即抢占优先级组为4组,这里抢占优先级为2,子优先级为0,然后使能NVIC(优先级不能理解上网查询)。

(2)定时器初始化配置

void tim2_config(void)

{

    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;

    tim2_nvic_config();                                //配置NVIC

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//开启时钟

    TIM_DeInit(TIM2);                                      //定时器2复位

    TIM_TimeBaseInitStructTIM_Period = 2000-1;                  //自动重装载寄存器值

    TIM_TimeBaseInitStructTIM_Prescaler = 36000-1;              //时钟预分频数

    TIM_TimeBaseInitStructTIM_ClockDivision = TIM_CKD_DIV1;    //采样分频

    TIM_TimeBaseInitStructTIM_CounterMode = TIM_CounterMode_Up; //计数模式

    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);            //初始化TIM2

    TIM_ClearFlag(TIM2, TIM_FLAG_Update);                        //清除溢出中断标志

    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

    TIM_Cmd(TIM2, ENABLE);                                      //使能时钟

}

        TIM2初始化,首先配置NVIC,打开TIM2时钟,复位TIM2。然后对TIM_TimeBaseInitStruct结构体的每个元素赋值。这里,主要阐述如何计算定时中断时间。定时器的溢出中断时间由TIM_Period和TIM_Prescaler来决定的。这里,我直接给出公式:发生中断时间=(TIM_Period+1)(TIM_Prescaler+1)/FCLK,而FCLK为72M,所以定时1s,可以这样:TIM_Period=2000-1,TIM_Prescaler=36000-1;最后清除溢出中断标志,使能时钟即可计时。

(3)编写中断计时函数

void TIM2_IRQHandler(void)

{

    if(TIM_GetITStatus(TIM2 ,TIM_IT_Update)!=RESET)

    {

        sec++;

        if(sec>=60)

        {

            sec = 0;

            min++;

            if(min>=60)

            {

                min = 0;

                hour++;

                if(hour>=24)

                {

                    hour = 0;

                }

            }

        }

    }

    TIM_ClearITPendingBit(TIM2 ,TIM_FLAG_Update);

}

这里,先定义时、分、秒三个变量,然后在中断函数里,对时间变量的关系进行换算即可。

(4)编写时钟显示函数

        这里,我们采用LCD12864实时显示。LCD12864的相关内容,我后面在LCD库函数章节中,会专门介绍的。这里,只将时间显示即可。

    lcd_display_num_m(2, 16, hour/10);

    lcd_display_num_m(2, 24, hour%10);

    lcd_display_string(2,32,"时");

    lcd_display_num_m(2, 48, min/10);

    lcd_display_num_m(2, 56, min%10);

    lcd_display_string(2,64,"分");

    lcd_display_num_m(2, 80, sec/10);

    lcd_display_num_m(2, 88, sec%10);

    lcd_display_string(2,96,"秒");

        LCD12864的驱动函数,我跟着黄老师的视频后面写的,在老师的基础上,增加了汉字字符串显示函数。这里,看成库函数即可,只需简单的调用,显示时间就行。

(5)按键调整时间

        成功显示时间后,我们需要按键来调整时间。 我们需要设置时钟启/停键(K1),时间位选择键(K2),数值增加键(K3),数值减小键(K4)。

1我们先对按键的GPIO进行配置,开启相应的时钟,选择相关引脚,设置浮空输入模式等。

void key_gpio_init(void)

{

    GPIO_InitTypeDef GPIO_InitStructure;

    /使能GPIO的RCC时钟/

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

    /配置PB11~PB14引脚/

    GPIO_InitStructureGPIO_Pin = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14;

    GPIO_InitStructureGPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructureGPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_Init(GPIOB,&GPIO_InitStructure);

}

2配置好按键的GPIO口后,编写按键扫描函数,从而达到调整时间的功能。

u8 flag,mark;//flag为定时器启停标志位,mark为位选择标志位

//mark为0表示未选中,mark为1表示选择时位,mark为2表示选择分位,mark为3表示选择秒位

void keyscan(void)

{

    if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==RESET)

    {

        delay_ms(10);

        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==RESET)

        {

            flag = ~flag;

            if(!flag)

            {

                TIM_Cmd(TIM2, ENABLE);

            }

            else

            {

                TIM_Cmd(TIM2, DISABLE);

                mark = 0;

            }

        }while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==RESET);

    }

    if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)==RESET)

    {

        delay_ms(10);

        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)==RESET)

        {

            mark = mark>=30:mark+1;

        }while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)==RESET);

    }

    if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)==RESET)

    {

        delay_ms(10);

        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)==RESET)

        {

            if(flag)

            {

                switch(mark)

                {

                    case 1:hour = hour<23hour+1:0;break;

                    case 2:min = min<59min+1:0;break;

                    case 3:sec = sec<59sec+1:0;break;

                    default:break;

                }

            }

        }while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)==RESET);

    }

    if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)==RESET)

    {

        delay_ms(10);

        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)==RESET)

        {

            if(flag)

            {

                switch(mark)

                {

                    case 1:hour = hour>0hour-1:23;break;

                    case 2:min = min>0min-1:59;break;

                    case 3:sec = sec>0sec-1:59;break;

                    default:break;

                }

            }

        }while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14)==RESET);

    }

}

        至此,我们完成了时钟显示的功能,当然,后期如果可以的话,我们可以使用stm32的RTC实时时钟资源,还可以设置闹钟、整点报时的功能。

         本章,我主要介绍了如何利用stm32的TIM定时器和GPIO资源,实现时钟显示和按键调整的功能。下一章中,我将介绍如何利用DHT11模块来测量温度和湿度,从而实现系统对环境参量的获取。

WPS表格中,通常把每一行称为一个记录。

WPS-数据表学习笔记:

1Ctrl+E:智能填充(功能比较强大智能)

2格式刷:可以双击。(复制所选的格式到另外的地方)

3左上角三角形,点击即可全选文本,然后调整一行或者一列宽度,即可全文调整

4开始--冻结窗格(一般冻结首行、首列较多)

5数据--分列(可拆分一组表格中的数据)

6复制一项数据之后,粘贴时(粘贴内容转置),可切换文本排列方向

7“查找”下拉选项有一个“定位”,可定位空值,然后删除空行(定位之前需要框选表格)

8开始--排序--(升、降序)可排序

9数据有效性:数据--有效性(文本长度可限定文本为固定长度,“序列”用英文逗号隔开,可选择性填充一些数据或者文字)

10例:筛选大于90分的数据,先筛选--小三角打开之后选择数字筛选--“大于”--填写90即可。还颜色筛选(筛选颜色)

11数据--分类汇总(可以将数据分为 总计、小记、详情)需提前排序

12找数据之间的差异:全选--定位--行内容差异单元格

找两个表中数据的差异:表1全选--复制--表2全选--选择性粘贴--减 即可完成

13运用公示时,选中其中一项按“F4”可添加“绝对引用”,之后的智能填充中

绝对引用的数据不会随填充柄变化而变化。例

D2--相对引用(会变化)

SDS2--绝度引用(不会变化)

DS2--只固定行

SD2--只固定列

14 “VLOOKUP”:查找函数,可以查找区域内的数据

“IF”:若就,例:若 D2 >=60则合格,否则不合格

“SUMIF”:可根据条件求和,例:一共六门课程,分两天考完,求张三的成绩总和

15 “RIGHT”函数是从右往左计算字符个数来提取字符

“LEFT”函数是从左往右计算字符个数来提取字符

“MID”函数是从中间某一位开始,往后计算字符个数来提取字符

16 “DHTEDIF”可计算两个日期间隔几天(倒计时)

1在手机或电脑上安装一个迅雷app(可替代)。

2复制你所需下载的磁力链接。

3打开迅雷。

4若迅雷没有自动打开复制的磁力链接,手动点击迅雷的创建功能,粘贴磁力链接,点击完成后会自动跳转到迅雷云盘,在迅雷云盘的迅雷云笔记中点击刚刚粘贴的磁力链接。磁力链接(MagnetURIscheme),是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接的统一资源定位符(URL)不同,磁力链接是基于元数据(metadata)文件内容,属于统一资源名称(URN)。

也就是说,磁力链接不基于文档的IP地址或定位符,而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。

1大数据工程师工作中会做什么?

集群运维:安装、测试、运维各种大数据组件

数据开发:细分一点的话会有ETL工程师、数据仓库工程师等

数据系统开发:偏重Web系统开发,比如报表系统、推荐系统等

这里面有很多内容其实是十分重合的,下面大致聊一下每一块内容大致需要学什么,以及侧重点。

2集群运维

数据工程师,基本上是离不开集群搭建,比如hadoop、Spark、Kafka,不要指望有专门的运维帮你搞定,新组件的引入一般都要自己来动手的。

因此这就要求数据工程师了解各种大数据的组件。

由于要自己的安装各种开源的组件,就要求数据工程师要具备的能力:Linux。要对Linux比较熟悉,能各种自己折腾着玩。

由于现在的大数据生态系统基本上是JVM系的,因此在语言上,就不要犹豫了,JVM系的Java和Scala基本上跑不掉,Java基本上要学的很深,Scala就看情况了。

3ETL

ETL在大数据领域主要体现在各种数据流的处理。这一块一方面体现在对一些组件的了解上,比如Sqoop、Flume、Kafka、Spark、MapRece;另一方面就是编程语言的需要,Java、Shell和Sql是基本功。

4系统开发

我们大部分的价值最后都会由系统来体现,比如报表系统和推荐系统。因此就要求有一定的系统开发能力,最常用的就是JavaWeb这一套了,当然Python也是挺方便的。

需要注意的是,一般数据开发跑不掉的就是各种提数据的需求,很多是临时和定制的需求,这种情况下,Sql就跑不掉了,老老实实学一下Sql很必要。

如何入门?

前面提到了一些数据工程师会用到的技能树,下面给一个入门的建议,完全个人意见。

1了解行业情况

刚开始一定要了解清楚自己和行业的情况,很多人根本就分不清招聘信息中的大数据和数据挖掘的区别就说自己要转行,其实是很不负责的。不要总是赶热点,反正我就是经常被鄙视做什么大数据开发太Low,做数据就要做数据挖掘,不然永远都是水货。

2选择学习途径

如果真是清楚自己明确地想转数据开发了,要考虑一下自己的时间和精力,能拿出来多少时间,而且在学习的时候最好有人能多指点下,不然太容易走弯路了。

在选择具体的学习途径时,要慎重一点,有几个选择:

自学

报班

找人指点

别的不说了,报班是可以考虑的,不要全指望报个辅导班就能带你上天,但是可以靠他帮你梳理思路。如果有专业从事这一行的人多帮帮的话,是最好的。不一定是技术好,主要是可沟通性强。

3学习路线

学习路线,下面是一个大致的建议:

第一阶段

先具备一定的Linux和Java的基础,不一定要特别深,先能玩起来,Linux的话能自己执行各种 *** 作,Java能写点小程序。这些事为搭建Hadoop环境做准备。

学习Hadoop,学会搭建单机版的Hadoop,然后是分布式的Hadoop,写一些MR的程序。

接着学学Hadoop生态系统的其它大数据组件,比如Spark、Hive、Hbase,尝试去搭建然后跑一些官网的Demo。

Linux、Java、各种组件都有一些基础后,要有一些项目方面的实践,这时候找一些成功案例,比如搜搜各种视频教程中如何搞一个推荐系统,把自己学到的用起来。

第二阶段

到这里是一个基本的阶段了,大致对数据开发有一些了解了。接着要有一些有意思内容可以选学。

数据仓库体系:如何搞数据分层,数据仓库体系该如何建设,可以有一些大致的了解。

用户画像和特征工程:这一部分越早了解越好。

一些系统的实现思路:比如调度系统、元数据系统、推荐系统这些系统如何实现。

第三阶段

下面要有一些细分的领域需要深入进行,看工作和兴趣来选择一些来深入进行

分布式理论:比如Gossip、DHT、Paxo这些构成了各种分布式系统的底层协议和算法,还是要学一下的。

数据挖掘算法:算法是要学的,但是不一定纯理论,在分布式环境中实现算法,本身就是一个大的挑战。

各种系统的源码学习:比如Hadoop、Spark、Kafka的源码,想深入搞大数据,源码跑不掉。

第一章编程的时间和空间11编程的本质3编程的本质是思考4创造世界的乐趣4快速提高的性能改变了社会5以不变应万变8摩尔定律的局限9社会变化与编程1012未来预测13科学的未来预测14IT未来预测14极限未来预测16从价格看未来16从性能看未来17从容量看未来18从带宽看未来19小结20第二章编程语言的过去、现在和未来21编程语言的世界23被历史埋没的先驱25编程语言的历史26编程语言的进化方向30未来的编程语言3220年后的编程语言34学生们的想象3422DSL(特定领域语言)36外部DSL37内部DSL38DSL的优势39DSL的定义39适合内部DSL的语言40外部DSL实例42DSL设计的构成要素43Sinatra46小结4723元编程48Meta,Reflection48类对象51类的 *** 作52Lisp53数据和程序54Lisp程序56宏56宏的功与过57元编程的可能性与危险性59小结6024内存管理61看似无限的内存61GC的三种基本方式62术语定义62标记清除方式63复制收集方式64引用计数方式65引用计数方式的缺点65进一步改良的应用方式66分代回收66对来自老生代的引用进行记录67增量回收68并行回收69GC大统一理论6925异常处理71“一定没问题的”71用特殊返回值表示错误72容易忽略错误处理72Ruby中的异常处理73产生异常74更高级的异常处理75Ruby中的后处理保证76其他语言中的异常处理77Java的检查型异常77Icon的异常和真假值78Eiffel的DesignbyContract80异常与错误值80小结8126闭包82函数对象82高阶函数83用函数参数提高通用性84函数指针的局限85作用域:变量可见范围87生存周期:变量的存在范围88闭包与面向对象89Ruby的函数对象89Ruby与JavaScript的区别90Lisp-1与Lisp-291第三章编程语言的新潮流31语言的设计97客户端与服务器端97向服务器端华丽转身98在服务器端获得成功的四大理由99客户端的JavaScript100性能显著提升101服务器端的Ruby102RubyonRails带来的飞跃102服务器端的Go103静态与动态104动态运行模式105何谓类型105静态类型的优点106动态类型的优点106有鸭子样的就是鸭子107StructuralSubtyping108小结10832Go109New(新的)109(实验性的)109Concurrent(并发的)110Garbage-collected(带垃圾回收的)110Systems(系统)111Go的创造者们111HelloWorld112Go的控制结构113类型声明116无继承式面向对象118多值与多重赋值120并发编程122小结12433Dart126为什么要推出Dart126Dart的设计目标129代码示例130Dart的特征132基于类的对象系统132非强制性静态类型133Dart的未来13434135最普及的语言135被误解最多的语言135显著高速化的语言136对JavaScript的不满138138安装方法139声明和作用域139分号和代码块141省略记法142字符串143数组和循环143类145小结14635Lua148示例程序149数据类型149函数150表150元表151方法调用的实现153基于原型编程155和Ruby的比较(语言篇)157嵌入式语言Lua157和Ruby的比较(实现篇)158嵌入式Ruby159第四章云计算时代的编程41可扩展性163信息的尺度感163大量数据的查找164二分法查找165散列表167布隆过滤器169一台计算机的极限170DHT(分布式散列表)171Roma172MapRece173小结17442C10K问题175何为C10K问题175C10K问题所引发的“想当然”177使用epoll功能180使用libev框架181使用183小结18543HashFold186HashFold库的实现(Level1)187运用多核的必要性190目前的Ruby实现所存在的问题191通过进程来实现HashFold(Level2)191抖动193运用进程池的HashFold(Level3)194小结19744进程间通信198进程与线程198同一台计算机上的进程间通信199TCPIP协议201用C语言进行套接字编程202用Ruby进行套接字编程204Ruby的套接字功能205用Ruby实现网络服务器208小结20945Rack与Unicorn210Rack中间件211应用程序服务器的问题212Unicorn的架构215Unicorn的解决方案215性能219策略220小结221第五章支撑大数据的数据存储技术51键-值存储225Hash类225DBM类226数据库的ACID特性226CAP原理227CAP解决方案——BASE228不能舍弃可用性229大规模环境下的键-值存储230访问键-值存储230键-值存储的节点处理231存储器232写入和读取233节点追加233故障应对233终止处理235其他机制235性能与应用实例236小结23652NoSQL237RDB的极限237NoSQL数据库的解决方案238形形色色的NoSQL数据库239面向文档数据库240MongoDB的安装241启动数据库服务器243MongoDB的数据库结构244数据的插入和查询244用JavaScript进行查询245高级查询246数据的更新和删除249乐观并发控制25053用Ruby来 *** 作MongoDB251使用Ruby驱动251对数据库进行 *** 作253数据的插入253数据的查询253高级查询254find方法的选项256原子 *** 作257259ODMapper26054SQL数据库的反击264“云”的定义264SQL数据库的极限264存储引擎Spider265SQL数据库之父的反驳265SQL数据库VoltDB268VoltDB的架构269VoltDB中的编程270HelloVoltDB!271性能测试273小结27555memcached和它的伙伴们276用于高速访问的缓存276memcached277示例程序278对memcached的不满279memcached替代服务器280另一种键-值存储Redis282Redis的数据类型284Redis的命令与示例285小结289第六章多核时代的编程61摩尔定律293呈几何级数增长293摩尔定律的内涵294摩尔定律的结果295摩尔定律所带来的可能性296为了提高性能297摩尔定律的极限302超越极限303不再有免费的午餐30462UNIX管道305管道编程306多核时代的管道308xargs——另一种运用核心的方式309注意瓶颈311阿姆达尔定律311多核编译312ache313dist313编译性能测试314小结31563非阻塞I/O316何为非阻塞IO316使用read(2)的方法317边沿触发与电平触发319使用read(2)select的方法319使用readO_NONBLOCK标志321Ruby的非阻塞IO322使用aio_read的方法32364nodejs330减负330拖延331委派332非阻塞编程333nodejs框架333事件驱动编程334事件循环的利弊335nodejs编程335nodejs网络编程337nodejs回调风格339nodejs的优越性340与Rev34165ZeroMQ342多CPU的必要性342阿姆达尔定律343多CPU的运用方法343进程间通信345管道345SysVIPC346套接字347UNIX套接字349ZeroMQ349ZeroMQ的连接模型350ZeroMQ的安装352ZeroMQ示例程序352小结354版权声明356

日出日落,能源革命驱动了人类文明的每一次飞跃。而到了新能源时代,能源的价值结构也在发生重构。传统的石油、天然气等化石能源正在逐步被清洁能源所替代,这对于整个能源市场的格局和未来发展方向都产生了重要影响。随着我国提出“2030年实现碳达峰、2060年实现碳中和”的宏大目标,汽车能源革命带来的不仅是绿牌新能源汽车随处可见,新问题同时也摆在了所有人的面前。

3月23日,由车云、电动邦、移动出行创新智库联合主办的“巅峰混动技术沙龙暨雷神电混研究报告发布会”在北京举行。中国电动汽车百人会、中国汽车工程学会、北京理工大学、电动车辆国家工程研究中心、吉利动力研究院等行业协会领导、专业院校教授、研究机构以及媒体齐聚一堂,共同探讨中国新能源汽车先进混动技术,寻找混动技术的未来发展方向。

众所周知,在新能源市场中,混合动力技术是其中一个重要的领域。其核心在于将内燃机和电动机结合起来,实现了能源的高效利用。更高的能源利用效率、更长的续航里程、更高的驾驶灵活性,而其中插电式混合动力汽车(PHEV)成为目前最具发展潜力的细分品类。据乘联会数据显示,2022年,中国新能源市场份额增长迅猛,全年销量达到700万辆,占整体销量的256%,提前完成了《新能源汽车产业发展规划(2021-2035年)》提出的2025年发展目标。其中插电式混合动力车型(含增程式)零售销量达到14198万辆,同比增长1605%,增幅超过纯电市场。

正如车云&电动邦创始人兼CEO程里所说,在相当长的时间,插电混动和增程也将是新能源这个大赛道里不可或缺的力量,它的技术演进和发展对于中国新能源产业发展起到很关键的作用。

北京理工大学机械与车辆学院副院长何洪文认为国家双碳战略对于传统燃油汽车提出巨大挑战,以电驱动为目标的混动技术,在提升性能,挖掘节能潜力方面起到非常重要的作用。这些技术兼顾动力性与经济性,通过构型优选、性能解耦实现车辆具备长续航和高性能以及高经济性。

作为世界最大的汽车市场和新能源市场,混合动力过去是日系合资品牌的主战场,进入到插电混动阶段之后,以吉利、比亚迪为代表的中国品牌正在取代日系合资品牌,称为这一技术的领航员。目前在国内,不少自主品牌纷纷推出了配备有电驱变速器的插电式混合动力系统,其中比亚迪DM-i采用1挡变速,长城DHT采用2挡变速,而吉利雷神电混则采用的3挡变速。

针对插电混动技术发展趋势,北京理工大学电动车辆国家工程研究中心发起了一项国内主流混动系统的评测。在此次沙龙上,北京理工大学电动车辆国家工程研究中心副教授孙超对评测报告进行了发布和解析。经过评测,以吉利雷神电混为代表的3挡变频电驱DHT Pro混动技术,能够满足“动力更强、续航更长、无焦虑”的要求,综合表现极佳,是目前行业内的顶尖技术。

吉利汽车2022年10月发布了全新动力品牌“雷神动力”,其中的雷神智能混动平台,正是吉利电动化转型中的关键技术。同时,开启吉利动力40全面迈入动力科技电气化的新时代。2023年,随着吉利汽车全新中高端新能源系列——“吉利银河”的发布,其专属的新一代雷神电混——“雷神电混8848”,在电混引擎热效率、性能、智控上实现全新升级。

吉利动力研究院DHT Pro项目总监宋伟介绍,新一代雷神电混取名“雷神电混8848”,其意取自珠穆朗玛峰海拔,同时代表了吉利将始终攀登科技的巅峰,永不止步。新一代雷神电混8848基于“雷神电混”升级进化而来,在电混引擎热效率、3挡变频电驱DHT Pro、智能控制系统实现三大升级进化。

从技术层面来看,新一代雷神电混8848在3挡变频电驱DHT Pro的基础上,是全球首个实现P1+P2双电机超频驱动的智能电驱,两驱综合功率可以达到287kW,不仅参数提升了27%,还能做到d射起步,0-100km/h加速时间缩短17%(相比无P1电机辅助)。后续还会推出一款综合功率达到488kW的超级性能版本。

除了3DHT Pro这项核心技术之外,雷神混动还有不少“杀手锏”。新一代雷神电混8848搭载全新雷神电混引擎BHE15 Plus,创下4426%的量产最高热效率,比比亚迪骁云15L的43%还要高,而日系两田产品均只有41%左右,新一代雷神电混8848在不同工况下都能发挥更高的工作效率。据悉下一代雷神电混引擎的热效率已经突破46%,目前已处于验证状态,将进一步创造全球热效率的新巅峰。

除了高素质的机械零部件以外,雷神混动智能控制系统相比当下封闭的混动控制系统,可自主收集用户、路况、导航等信息,通过智能算法进行分析,适配驾驶模式、能量控制、功率输出等,在适应场景+驾驶员的基础上,最大限度兼顾动力及油耗。可以做到20种智能工作模式自如切换,更符合驾驶员的驾驶习惯。并且,还实现了行业内首次混动系统FOTA升级,让车人、车路、车云之间的数据及时互通成为可能的同时,也让车辆常开常新。

从实际驾驶场景层面来看,雷神混动P1+P2双电机超频驱动的智能电驱在起步阶段,3DHT Pro会以1挡起步,较高的齿比配合电机低扭强的特性,让起步响应变得十分敏捷,再加上3DHT Pro可实现d射起步的特性,起步加速能力提升50%。当速度处于20km/h以上即可进入全速域并联模式,远低于日系车混动至少70km的并联车速,系统效率提高20%;

二挡更多地利用于城市路况,包括一些复合路况,总体来说就是舒适性与节能兼备。二挡也可以提供更加广泛的发动机直驱;

三挡更多的是利用于高速的路况,通过三挡在高速上面行驶时,可以更多地通过电机和发动机直驱的形式来实现。需要再加速时,3DHT Pro又可以将挡位降至2挡,释放60%的储备功率,以强劲的动力实现高速超车。

在此次“巅峰混动技术沙龙”的圆桌论坛环节,嘉宾们讨论新能源市场变革下混动技术的挑战以及全球展望,大家从多个维度探讨了比亚迪DM-i、吉利雷神电混8848以及理想增程等热门混动技术的各自特点和适用场景。混动市场百花齐放,不少实力强劲的中国品牌车企都推出了自家混动技术,混动市场的爆发,已是一个不可逆的大趋势,同时一场“残酷的厮杀”正在这里展开。以吉利雷神电混8848为首的插混动力系统不仅率先突破技术瓶颈,同时也已经获得了专业人士和国内消费者的认可。在硬核技术的加持下,相信雷神电混8848将带来更多的惊喜。

本文来自易车号作者一猫说车,版权归作者所有,任何形式转载请联系作者。内容仅代表作者观点,与易车无关

终于拿到长城体系外订单

“我们还在等他们(毫末)的车交付之后,才能做技术上的对标。” 同为量产高阶智驾方案的某车企工程师这样评价毫末。

这一对标将在今年初见分销。

4月11日,在第八届AI DAY上,毫末发布了一个堪比BEV的新技术:自动驾驶生成式大模型DriveGPT——雪湖·海若。

2021年特斯拉用一个BEV架构模型搞定了自动驾驶的感知,而雪湖·海若Transformer则有望用一个模型解决自动驾驶的认知问题。

雪湖·海若将依次搭载在魏牌摩卡DHT-PHEV和蓝山上,首批落地在北京、保定、上海等城市,并于2024年开拓100个城市。

此外,毫末宣布与三家主机厂签订了定点合作协议,其中包括长城体系外的品牌。

新技术范式、百城大战,毫末的“野心”要如何实现?

01

一次解决所有问题

(雪湖·海若)使我们在一个统一的生成式框架下,将规划、决策和推理等多个任务全部完成。”毫末智行CEO顾维灏在采访中表示:“(雪湖·海若)在更大数据的支持下,还是会让(自动驾驶系统的决策能力)有一个质的提升。这一新技术范式即使放眼全球也是非常独特和创新的。

认知架构雪湖·海若和感知架构BEV一样,旨在通过一个大模型一次性解决问题。

在BEV之前,自动驾驶系统的感知是在各传感器端先进行感知,之后由多个小模型算法进行置信判断和融合之后,输出最终的感知结果。BEV则是一次性“吸收”所有传感器的原始数据,之后直接输出车辆周围360°的完整空间感知结果。

决策方面,目前业内主要包括预测、规划、控制几个环节:

基于感知结果,通过搜索等方法划定出可行使空间,再在其中根据自车和其它交通参与者可能的行动轨迹进行路线规划,最终决定出一条行驶路线,并将行驶路线分解为车辆动作命令传给执行器。

雪湖·海若则是基于感知结果,直接给出规划控制结果和理由:

一次性生成多个未来可能发生的全局场景,并且按照可能发生的概率排序;生成自车未来的轨迹信息;直接给出决策逻辑链。

例如在一个包含对向来车、左侧电动车、右侧过路行人的无保护左转的场景中:

传统方法是先对与自车最有可能交互的对向来车进行轨迹预测,基于预测结果判断自车应该的行驶轨迹。此轨迹如果涉及到电动车/行人等其它的交通参与者,则加入考虑后预测,再判断轨迹,如此往复。

但雪湖·海若是一次性看到路面的全局情况,基于预训练积累的“经验”,直接得出:对向来车已出线刹车概率低、电动车虽然未出线但惯于抢行、行人在路口通常谨慎行动变。如以安全为先,应当缓慢起步,让行电动车后,快速通过路口。

之所以出现这样不同的“思考”方式,在于传统方法和雪湖·海若在短期数据和长期知识上存在不同。

短期数据即当时当刻的路面情况。

由于目前决策大都使用参数有限的小模型,因此一次性能考虑的对象便相对有限。

雪湖·海若作为大模型,在云端参数高达1200亿个,由此在学习时能够做到全局思考。目前毫末未透露部署到车端时的参数规模。

长期知识则是交通规则和常识性的潜规则。

目前主流决策层算法仍以逻辑判断为主,对于“谁会如何”更多还是出自工程师经验。

雪湖·海若则是先在4000万量产车驾驶数据中进行学习,又用5万个经过筛选的人类接管数据做反馈训练,最终习得开车的知识和常识,能够更加类人的,根据当前交通情况推理出未来各类交通场景以及出现的概率。

对于神经网络作为黑盒,思考过程的不可解释化,毫末技术负责人艾锐向《赛博汽车》表示,通过添加限定规则,可以一定程度上解决这一问题。

在决策层引入GPT模型只是开始,未来毫末计划将雪湖·海若扩大为端到端的自动驾驶系统模型,即用一个大模型解决感知、认知的所有问题。

中国自动驾驶逻辑芯片企业地平线也持类似的观点。前不久,地平线作为第一作者发布了基于Transformer的自动驾驶端到端算法框架论文,首次将检测、跟踪、预测、箭头轨迹预测等多个模块用一个完整神经网络架构完整解决。

让我们有可能像ChatGPT那样,用端到端的大规模的数据去训练整个的自动驾驶系统。”地平线创始人&CEO余凯在演讲中表示。

02

万事俱备,只待上车

一次解决所有问题,当然很棒,但却鲜少有玩家实践该技术。

在2022年的AI DAY和今年的投资者日上,特斯拉展示的预测算法仍是以蒙特卡洛树搜索为主。

小鹏汽车自动驾驶副总裁吴新宙则在4月明确表示,未来小鹏将在预测层面引入神经网络,但在规控层面,仍将以逻辑算法为主。“我对团队有一个明确的线,能用数学方法解决的问题,都先用数学的方法。”

事实上,即使想要应用,GPT也不是普通玩家玩得起的。

华为云人工智能领域首席科学家田奇在近日的演讲中表示,大模型开发和训练一次需要1200万美元。而且并不只是“钱”的事。

首先,雪湖·海若作为GPT(Generative Pre-trained Transformer)生成式预训练大模型,需要有大规模语料库来进行训练。

顾维灏在演讲中表示,雪湖·海若的一个关键设计是将场景Token(令牌,代表执行某些 *** 作的权利对象)化表达:将驾驶空间进行离散化处理,每一个Token都表征场景的一小部分。如果输入一连串过去已经发生的场景Token序列,模型可生成未来所有可能的场景。目前毫末Token的词表空间是50万个左右。

大模型还需要超算中心来训练。

1月,毫末发布了670PFLOPS算力的超算中心——雪湖·绿洲。若按照一块195TFLOPS算力的英伟达A100计算,则绿洲或用了343万块英伟达A100。

绿洲还针对海若进行了针对性的升级改造。

一是建立全套训练保障框架,避免因个别服务器异常可能导致的训练中端;二是升级d性调度资源的能力,使训练平台能够自适应每天回传数据不同的大小规模;三是吞吐效率的升级,通过算子融合端到端吞吐提升84%。

但就像ChatGPT和GPT4仍依赖于对话者不断调整问题问法,扩大数据库调用权限,才能表现得更加真实类人一样。

雪湖·海若要做到真正高速类人,在并行效率、算力需求、功耗等方面超过搜索等传统方法,甚至超过人类表现的前提,是源源不断的真实道路场景和人类反馈。

03

毫末的身份突围

2022年底,小鹏、华为、毫末三家抢跑城市领航功能落地。

从结果来看,小鹏、华为都已有了搭载城市领航功能的车队上路,毫末HPilot 30所搭载的新摩卡DHT-PHEV预计将于本月推出,而魏牌蓝山要到三季度才会推出激光雷达版。

与此同时,后来者也正逐步逼近,蔚来、理想等车企,和轻舟智航等智能驾驶供应商都已宣布了2024年落地高速、城市领航功能的计划。

之所以形成这样的局面,与毫末的身份不无关系。

毫末虽然出身长城,却无法像蔚小理的智驾团队一样,拥有自上而下的话语权,更多还是相对独立的供应商身份。

但背靠长城又使毫末的供应商身份不那么纯粹。对于出自ICT行业的华为,车企都尚且顾忌灵魂。出自同行的毫末作为供应商,自然也少不了被挑剔。

如何实现身份突围?

今年年初,毫末推出了包括全栈解决方案、云端服务、硬件、软件、模块、原型代码六个层面的6P开放合作模式。合作伙伴不仅可以获取毫末的功能产品,甚至可以获得原型代码这样的底层技术能力。

您的灵魂您保留,我的灵魂您带走。” 毫末智行COO侯军表示:“(智能/自动驾驶)全栈自研是高成本、长周期的事情。毫末的6P开放模式帮助主机厂在不具备技术和时间的情况下参与竞争。

如果之后毫末的综合性价比能力赶不上合作伙伴进步的灵魂,我们被淘汰也是正常的。如果能赶上,我们愿意与合作伙伴长期携手同行。

这样“白盒”开放的态度已经起到了效果,毫末已与三家主机厂签署定点合同,其中包括长城体系外的品牌。

在毫末的生态伙伴当中,除了高通这样的老朋友外,还多了英伟达、华为、地平线这样新朋友,未来合作方向值得玩味。

此外,毫末在2024年的百城计划也绝非说说而已。

目前,华为、小鹏的城市领航功能在核心区域仍需依靠高精地图。而毫末的方案则完全不采用高精地图,只用类似导航地图的标清地图,以感知信息的置信权重远高于地图信息,即所谓重感知轻地图方案。

要完全依靠感知信息做判断使毫末目前的城市领航功能更显保守,安全性要求远高于舒适和通行效率。

但由于完全不依赖高精地图,所以毫末HPilot 30的开城将不受地图资源限制,随着其感知能力打磨得愈发完善,开城速度也将愈发加速。

顾维灏在演讲中表示,毫末的视觉自监督大模型感知性能已提升20%。例如鱼眼摄像头在15米范围内的测量精度已达到30厘米,2米内精度可以高于10厘米。因此毫末正考虑取消超声波雷达,直接使用鱼眼镜头做泊车功能。

技术进步也正成为毫末作为供应商,持续降本的底气所在。毫末智行张凯表示:“未来(降本同效的策略)对我们和行业发展,都会有很好的推动作用。”

本文来自易车号作者赛博汽车,版权归作者所有,任何形式转载请联系作者。内容仅代表作者观点,与易车无关

以上就是关于基于stm32的多功能时钟1——时钟显示全部的内容,包括:基于stm32的多功能时钟1——时钟显示、wps表格中,数据库的行是一个、磁力链接怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9875846.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存