当前位置:首页 > 嵌入式开发
  • 【09.16】长视科技? 安防视频领域 嵌入式开发工程师  30k月薪 岗位内推

    点击上方名片关注我们 朱老师推荐语: 此岗位为大讲堂海思项目学员肖工提供的自己公司的岗位内推,总部在广州,安防视频领域,有学过嵌入式课程或者海思项目的同学,想换行业的或者想跳槽涨薪的可以试试投简历。欢迎关注“朱老师IT充电站”,添加充电站小助手微信(微信号:zls_it)可以加微信群交流互动。你如果不找工作那就看看而已,只要有考虑找工作那就不要放过哪怕一个可能。你想想,最终肯定要有人拿到这个offer,凭什么就不会是你呢? 公司名称 长视科技 企业简介: 长视科技股份有限公司成立于2006年,总部位于广州,是一家集研发、生产、销售于一体的高新技术企业,面向全球提供安防视频监控产品、服务及解决方案。 长视科技以安防视频技术为主要研发方向,包括图像视频、传输存储、视频分析、视频管理等,产品范围涵盖了网络高清摄像机,同轴高清摄像机,VR鱼眼摄像机,自动聚焦高清摄像机,网络硬盘录像机,混合硬盘录像机,PLC电力猫硬盘录像机,智能监控平台VMS,移动端监控APP,网业端监控OCX,还有交换机、电源、藏线盒、转接器、支架、护罩等安防配套产品。至2016年底公司共获32项实用新型专利、28项软件著作权专利、6项发明专利及10项外观专利等。 长视科技一直致力于视频监控产品的全球化销售与服务,产品覆盖180多个国家和地区,广泛应用于家庭、办公、交通、通信等关键领域,以科技含量高、品种多样化、质优价优的综合优势,深得国内外客户的信赖。自2006年成立以来,荣获多种荣誉。从2015年起,公司在境外逐步设立海外分公司,以为客户提供更加优质、高效、快捷的服务为目标,实现销售、物流和售后维修本在化快速响应。 “选择长视,选择专业”!长视科技将秉承“专业、专注、专心“的企业精神,始终坚持在安防视频领域不断开发拓展及创新,立志打造高品质、高性价比的精品,持续为客户创造最大价值。 岗位名称 嵌入式开发工程师 岗位职责 1、负责网络摄像机软件设计与开发; 2、负责云平台的接入和协议服务端开发; 3、负责网络摄像机系统服务及 Web 相关功能的开发; 4、负责网络摄像机 IP软件工具开发及网络摄像机产品需求分析,可行性分析; 5、负责开发过程中的技术攻关; 任职要求 1、本科或以上学历,计算机相关专业,2年或以上工作经验; 2,熟悉linux c/c 软件开发; 3,熟悉onvif,rtsp,rtp,gb28181等协议优先; 4,熟悉h264/h265,mp4/avi 5、有网络摄像机软件架构的同行者优先; 6、熟悉海思/富瀚/瑞芯微芯片者优先。 薪资待遇 15k-30k/月薪 工作地点 广州黄埔区长视科技728号 联系方式 内推人:肖工电话:13083037850(微信同号)邮箱:2594994160@qq.com感兴趣可先电话微信联系,或直接邮箱投递简历 有意向的小伙伴赶紧联系并投递简历高薪offer等你拿!欢迎转发分享给需要的好友! 《朱老师物联网大讲堂》为了更方便为大家提供就业岗位信息,若有大讲堂学员有优质岗位推荐请在微信群或者QQ群直接联系:大讲堂-助教并按照下图格式提供岗位信息(可联系助教获取execl电子版方便填写) end

    时间:2021-09-16 关键词: 安防 嵌入式开发 开发工程师

  • 嵌入式开发中,为何大部分通信总线都差不多?

    在进行嵌入式开发中你一定遇到了各种总线,包括芯片内的地址总线和数据总线,高速总线和低速总线,还有芯片外的各种通信总线等等。而往往大家对总线似乎还是把握得不太好,所以今天挑选了一篇关于总线的文章供大家阅读。如果一座只能容一个人来往的独木桥,两端的人都想要过桥,为了不拥挤、阻塞,那我们就得采取有效的办法。比如规定某段时间哪端的人过桥,另一端的人就等着该他过桥的时间段的到来,同时也还可以规定人多时要按先来后到或年龄长幼的次序过桥。在这不经意间,我们就体会到了现代电子信息数据通过总线按时分系统传输的最原始的思想。现代网络信息的发展,特别是对于成本和空间而言,总线传输替代点对点传输是目前发展的热点,它的出现将给信息传输上提供了最大的方便和最有效的技术解决方案。假如一个微处理器与它的部件和外围设备都分别用点对点的线路来连接通讯,则所有连线将会错综复杂,甚至难以实现。目前与我们生活习习相关的一系列活动都无不牵涉到总线技术的应用,如我们上英特网、给亲戚朋友打电话、用U盘来存储信息等。虽然流行的总线所采取的形式不同,但他们主要的原则性思想无非就是时分系统、频分系统、相分系统和码分系统等。常言道“兵来将挡,水来土淹”,面对种类繁多的总线,我们只有从基本原理出发,从骨子里去了解它的实质,而不要被它形式多样的外表所迷惑,才能熟练掌握和灵活运用眼下正在或将要用到的各种总线技术。总线的定义总线,英文叫作“BUS”,即我们中文的“公共车”,这是非常形象的比如,公共车走的路线是一定的,我们任何人都可以坐公共车去该条公共车路线的任意一个站点。如果把我们人比作是电子信号,这就是为什么英文叫它为“BUS”而不是“CAR”的真正用意。当然,从专业上来说,总线是一种描述电子信号传输线路的结构形式,是一类信号线的集合,是子系统间传输信息的公共通道。通过总线能使整个系统内各部件之间的信息进行传输、交换、共享和逻辑控制等功能。如在计算机系统中,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过主机相连接,外部设备通过相应的接口电路再与总线相连接。总线的分类总线分类的方式有很多,如被分为外部和内部总线、系统总线和非系统总线等等,下面是几种最常用的分类方法。1 按功能分类最常见的是从功能上来对数据总线进行划分,可以分为地址总线(address bus)、数据总线(data bus)和控制总线(control bus)。在有的系统中,数据总线和地址总线可以在地址锁存器控制下被共享,也即复用。地址总线是专门用来传送地址的。在设计过程中,见得最多的应该是从CPU地址总线来选用外部存储器的存储地址。地址总线的位数往往决定了存储器存储空间的大小,比如地址总线为16位,则其最大可存储空间为216(64KB)。数据总线是用于传送数据信息,它又有单向传输和双向传输数据总线之分,双向传输数据总线通常采用双向三态形式的总线。数据总线的位数通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。在实际工作中,数据总线上传送的并不一定是完全意义上的数据。控制总线是用于传送控制信号和时序信号。如有时微处理器对外部存储器进行操作时要先通过控制总线发出读/写信号、片选信号和读入中断响应信号等。控制总线一般是双向的,其传送方向由具体控制信号而定,其位数也要根据系统的实际控制需要而定。2 按传输方式分类按照数据传输的方式划分,总线可以被分为串行总线和并行总线。从原理来看,并行传输方式其实优于串行传输方式,但其成本上会有所增加。通俗地讲,并行传输的通路犹如一条多车道公路,而串行传输则是只允许一辆汽车通过单线公路。目前常见的串行总线有SPI、I2C、USB、IEEE1394、RS232、CAN等;而并行总线相对来说种类要少,常见的如IEEE1284、ISA、PCI等。3 按时钟信号方式分类按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,也就是说要用一根单独的线来作为时钟信号线;而异步总线的时钟信号是从数据中提取出来的,通常利用数据信号的边沿来作为时钟同步信号。总线传输基本原理依据前面对总线的定义可知总线的基本作用就是用来传输信号,为了各子系统的信息能有效及时的被传送,为了不至于彼此间的信号相互干扰和避免物理空间上过于拥挤,其最好的办法就是采用多路复用技术,也就是说总线传输的基本原理就是多路复用技术。所谓多路复用,就是指多个用户共享公用信道的一种机制,目前最常见的主要有时分多路复用、频分多路复用和码分多路复用等。1 时分多路复用(TDMA)时分复用是将信道按时间加以分割成多个时间段,不同来源的信号会要求在不同的时间段内得到响应,彼此信号的传输时间在时间坐标轴上是不会重叠。2 频分多路复用(FDMA)频分复用就是把信道的可用频带划分成若干互不交叠的频段,每路信号经过频率调制后的频谱占用其中的一个频段,以此来实现多路不同频率的信号在同一信道中传输。而当接收端接收到信号后将采用适当的带通滤波器和频率解调器等来恢复原来的信号。3 码分多路复用(CDMA)码分多路复用时所被传输的信号都会有各自特定的标识码或地址码,接收端将会根据不同的标识码或地址码来区分公共信道上的传输信息,只有标识码或地址码完全一致的情况下传输信息才会被接收。总线的通信协议对于总线的学习,了解其通信协议是整个过程中最关键的一步,所有介绍总线技术的资料都会花很大的篇幅来描述其协议,特别是ISO/OSI的那七层定义。其实,要了解一种总线的协议,最主要的就是去了解总线的帧数据每一位所代表的特性和意义,总线各节点间有效数据的收发都是通过各节点对帧数据位或段的判断和确信来得以实现。如图1所示是常见的I2C总线上传输的一字节数据的数据帧,其总线形式是由数据线SDA和时钟SCL构成的双线制串行总线,并接在总线上的电路模块即可作为发送器(主机)又可作为接收器(从机)。帧数据中除了控制码(包括从机标识码和访问地址码)与数据码外还包括起始信号、结束信号和应答信号。起始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。控制码:用来选择操作目标与对象,即接通需要控制的电路,确定控制的种类对象。在读期间,也即SCL时钟线处于时钟脉冲高电平时,SDA上的数据位不会跳变。数据码:是主机向从机发送的具体的有用的数据(如对比度、亮度等)和信息。在读期间,SDA上的数据位不会跳变。应答信号:接收方收到8bit数据后,向发送方发出特定的低电平。读/写的方向与其它数据位正好相反,也即是由从机写出该低电平,主机来读取该低电平。结束信号:SCL为高电平时,SDA由低电平向高电平跳变表示数据帧传输结束。当然不同的总线其数据位或段的定义肯定不同,但依据同样的原理可以更快的去了解它的协议的特性和特点。虽然其信息帧的大小不一,但具体的某一数据位或数据段都类似于本文所提及的I2C总线,会依据它的协议的要求来定义它所达标的意义和功能。主要技术指标评价总线的主要技术指标是总线的带宽(即传输速率)、数据位的宽度(位宽)、工作频率和传输数据的可靠性、稳定性等。1 带宽(传输速率)、位宽和工作频率总线的带宽指的是单位时间内总线上传送的数据量,即每秒传送MB的最大数据传输率。总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念;总线的位宽越宽,数据传输速率越大,总线的带宽就越宽。总线的工作时钟频率以MHz为单位,它与传输的介质、信号的幅度大小和传输距离有关。在同样硬件条件下,我们采用差分信号传输时的频率常常会比单边信号高得多,这是因为差分信号的的幅度只有单边信号的一半而已。总线的带宽、位宽和工作频率,这三者密切相关,它们之间的关系:2 传输数据的可靠性可靠性是评定总线最关键的参数,没有可靠性,传输的数据都是错误的信息,便就失去了总线的实际意义。为了提高总线的可靠性,通常采用的措施有:1)采用数据帧发送前发送器对总线进行侦听,只有侦听到总线处于空闲状态下时才可向总线传送数据帧,这样避免了不同节点的数据冲突。2)采用双绞线差分信号来传送数据,以降低单线的电压升降幅度,减小信号的边沿产生的高次谐波。3)适当的让数据的边沿具有一定的斜坡。4)增加匹配电阻和电容等来减少总线上信号的发射和平衡总线上的分布电容等。5)采用合适的网络拓扑结构和屏蔽技术等来减少受其他信号的干扰。还有就是在软件上通过数字滤波、数据校验纠错等措施来提高数据传输的可靠性。结束语学习是一个循序渐进的过程,对总线技术的学习和理解也是随着其技术的不断发展而不断更新的过程。子曰“工欲善其事,必先利其器。”只有从最基本的原理出发,打好基础,才能在今后的学习中融会贯通,前仆后继,更进一步深入该知识点和拓宽知识面。END来源:网络版权归原作者所有,如有侵权,请联系删除。▍

    时间:2021-09-16 关键词: 通信总线 嵌入式开发

  • 嵌入式开发者明显在涨薪

    去年到今年,明显能感觉到嵌入式开发岗位在涨薪。嵌入式VIP群里的同学们给我报喜的工资水平上涨到20k ,30k 。工作几年跳槽的同学30-40k的明显多了。认识的一些朋友也向我报喜终于突破瓶颈到年薪50万左右了。还有朋友请帮忙发招聘资深嵌入式工程师年薪100万 的(前两三个月,就在这个公众号发的)。整个行业明显比前些年薪资水平上涨了。为什么?有些同学说是因为通货膨胀,印钱多了房价涨了物价涨了所以工资水平跟着上涨。这种想法too young too simple啊!你以为房价涨工资就会跟着涨让你买得起?这个逻辑完全是错的。你的工资涨不涨完全取决于你的个人价值涨没涨,或者说你所在行业的人才需求和供给量对比关系变没变,而不是你需不需要钱。有些天坑行业的人也需要钱,然而从来不涨工资……真正的原因是: 第一,嵌入式开发者的工作岗位在变多,尤其是中高端开发岗位数量明显增多。第二,更多巨头公司在嵌入式开发部分的投入在增加,而智能硬件创业公司融资也比以前更好。手里有钱了自然就是挖人,砸钱请更能干活的人。简单总结,就是整个行业更有钱了需求量大了,所以薪资水平水涨船高了。为什么整个行业上升了?本质原因有两个。一个是美国对中国科技的无理打压,尤其对华为的芯片封锁让国内下定决心发展国产芯片产业,大量的投资进入芯片产业链,众多芯片公司拿到了钱。而嵌入式开发属于芯片产业下游,相关性极强。芯片厂商每个数字芯片产品线下都有相应的嵌入式开发团队,要去开发相应的固件库,移植底层软件如uboot,kernel等,大部分芯片厂家也需要给客户提供基于自家芯片的demo方案,sdk,这些都需要很资深的嵌入式开发者来做。这个方向也是嵌入式开发者的顶级高薪就业方向之一。我在前面的文章说过的。以前为什么嵌入式开发者到年薪30-50万就很难涨薪了?因为再没空间了啊!以前芯片基本都是国外公司的(如ti nxp st 高通等),芯片相关的开发岗位都在国外,国内根本不招人,你在国内给芯片原厂服务最多就做个FAE,就这都能拿到年薪50万 (我记得2015年时有猎头给我推cypress还是microchip的fae岗位就是50万 的)而现在一大票国产芯片厂商拿到钱在发展,就会创造一大票高端岗位,他们就会高薪挖人,把行业内资深开发者抽水,这就形成了顶级公司挖一流的,一流公司挖二流的,二流公司挖三流的,全行业都整体性提升了。另一个是国家的产业升级大方针,以及新冠疫情加速了中国的发展模式从学习美国转向学习德国。简单说就是由发展高端服务业,转向发展高端制造业。所以大家会发现从去年到今年越来越明显的打击互联网垄断巨头,阿里腾讯美团等都没有以前那么受宠了。而芯片行业上下游,光伏锂电等新能源,智能网联汽车等新科技却不断被鼓励。未来发展方向已经从偏软件的科技服务,转向了偏硬件的所谓“硬科技”,这就是时代机遇。资本市场的嗅觉是最敏锐的。当国家政策的引导越来越清晰后,投资会不断进入硬科技相关行业,薪资水平自然也会水涨船高,借此吸引更多人才进入。这就是历史进程。前些年的互联网和移动互联网大发展,高薪就是因为踩在了他的历史进程中。而现在历史的进程又向前推进了,新的一轮发展周期开始了。新的机会也出现了。同志们,加油干吧!

    时间:2021-09-06 关键词: 开发者 嵌入式开发

  • 一种基于WiFi控制的四旋翼飞行器设计与实现

    引 言 2014 年 11 月,李克强总理出席首届世界互联网大会时指出,互联网是大众创业、万众创新的新工具。2015 年 3 月,李克强总理在十二届全国人大三次会议上首次提出“互联网 +” 行动计划,推动移动互联网、云计算、大数据、物联网等与现代制造业结合,引导互联网企业拓展国际市场[1]。 基于以上背景,本文设计一个基于WiFi 控制的四旋翼飞行器控制系统,将网络通信 TCP 协议运用到系统中。该系统用传统的遥控手柄模拟标准的遥控器,遥控手柄与PC 机相连, 四旋翼上添加带有WiFi 模块的RT5350,该设备运行嵌入式Linux 操作系统,可与PC 机建立无线连接,从而遥控手柄通过网络通信将遥控信号传递给四旋翼飞控系统,达到控制四旋翼飞行的目的。本研究对计算机网络的学习有一定的指导意义。 1 系统方案 本系统的总体结构图如图 1所示,系统可分为用户PC 客户端、服务器、PWM控制器和飞控板四个部分。用户将控制信号通过客户端发给服务器,服务器接收到信号后通过串口通信将信号转给PWM控制器,PWM控制器生成输入信号, 飞控板收到信号后控制电机旋转。 2 整体设计 系统划分为两部分,一部分为硬件设计,另一部分为软件设计。其中硬件部分主要是各模块的开发板的选择及开发和 组装,软件部分主要实现控制端和服务器端的通信以及各模 块之间的通信。  2.1 硬件总体结构  本系统的硬件总体结构设计如图 2 所示,硬件总体结构 是按照模块化思想设计的。服务器端主要由 RT5350 模块和 PWM 控制器组成,飞行器主要由飞控板、电机驱动和直流电 机组成 ,客户端主要由 PC 和遥控手柄组成。 飞行器驱动层的主要设备是飞控板和 PWM 控制器,其 中飞控板采用简单的 KK 飞行控制板。其功能简单,易于调节, 价格便宜,便于二次开发。PWM 控制器主要作用是向飞控板 发送指定的 PWM 波形,飞控板根据 PWM 脉冲波对利用 I/O 口直接控制电机。由于飞控板的 I/O 口输出电流为 mA 级,无 法驱动直流电机转动,因此需要使用电机驱动模块驱动电机。 直流电机选用的是减速直流电机,因为减速直流电机的输出 力矩较大,可以适应复杂地形。调节四个电机不同转速用来改变飞行器的飞行动作。  服务器端的主要任务是接收客户端的控制信号,并将信 号传给 PWM 控制器,PWM 控制器将信号传给飞控板。其中 开发板选用 RT5350,如图 3 左所示。其运行的是一个嵌入式 Linux 操作系统,带有 WiFi 模块和 RS 232 串口模块,便于 和客户端以及 PWM 控制器进行通信。PWM 控制器使用的是 艾尔赛舵机控制器(LCSC),如图 3 右边所示。LCSC 拥有 16 路舵机 PWM 脉冲信号输出,可以同时对 16 个舵机进行任意 角度和精确时间的控制。该舵机控制器可以接收串口命令,适 合任何含标准串口(RS 232 电平)的系统,如个人电脑、PLC、 51系列单片机、DSP、FPGA,ARM 等等。 客户端主要由遥控手柄和 PC 组成,PC 需带有无线网卡, 便于和服务器进行通信。标准遥控器采用 2.4 GHz 无线通信, 可以提供 8 通道甚至 16 通道的控制选择。其功能强大、性能 稳定、操作方便,缺点是价格昂贵。本文采用市面上常见的遥 控手柄,价格便宜,可以模拟出 4 个通道信号并产生控制信号。 2.2 软件设计  软件的总体结构主要包括 3 个部分 :摇杆客户端、服务 器端和 PWM 控制器。遥感控制客户端主要是将摇杆的模拟 信号转化成数字信号并通过 TCP 协议发送给服务器,服务器 端接收客户端发送的命令并转发给 PWM 控制器,PWM 控制 器将其转化为 PWM 信号传给飞控端,飞行控制端收到 PWM 信号后控制电机转动。  2.2.1 客户端控制算法设计  客户端主要产生飞行器的飞行信号。游戏手柄客户端的 实现原理是在 Linux 系统下读取手柄的键码值 [2],再通过一定 的数学计算,将键码值映射 PWM 模块可识别的指令。首先 在 Linux 系统下安装驱动后会在 /dev/input 生成 js0。然后通 过 js0 接口来获取遥控手柄的控制信息。当用户操作手柄时, 驱动发送 js_event 的结构给应用程序以通知用户做了哪些操 作。js_event 有如下定义 : struct js_event {unsigned int time ;/* event timestamp in milliseconds */short value ;/* value */unsigned char type ;/* event type */unsigned char number ;/* axis/button number */ } ;  其次,我们还应了解手柄按键的分布 [3] :  1-4 号键的键值分布表 1 所列。 对于左侧四个键,有两种情况 :  当 ANALOG 键关闭时:上键和下键的 number 值均为 1, 左键和右键的 number 值为 0。其他值不变。  当 ANALOG 键按下时,键值会随着手指按下和松开的 不同状态来做出相应的分布。不同状态下的键值分布如表 2 所列。 当旋转时,相当于向系统传送一系列的 value 值渐变的 js_event。 根据以上原理,系统可以获取手柄的按键值以及摇杆的 位置,得到手柄的遥控信息,并将此信息封装为固定的格式 传给服务器。  2.2.2 服务器设计  服务器运行在嵌入式 Linux 操作系统中,采用 Linux C 语言编程实现,与客户端之间建立 TCP 通信协议 [4]。客户端 通过扫描手柄设备文件读出手柄按键码,将其映射为 PWM 指令发送至服务器。服务器收到指令后通过串口通信将指令 发送给 PWM 控制器,PWM 产生指定波形驱动飞控板,从而 改变飞控 4 个电机转速,控制飞行器飞行动作。  其客户端与服务器之间的通信流程图如图 4 所示。 2.2.3 PWM 控制器  PWM 控制器接收到服务器的控制指令后,通过解析控 制指令产生 PWM 信号,并将此信号发送给飞控输入端。其控 制指令格式如下: 命令格式 :#<ch>P<time>!  <ch> 表示所控制的是第几路舵机,共 16 路(00~15)。 P :指令格式中固定符号,不可缺少。  <time> 表示 PWM 信号的宽度,为单位,  !:指令的结束符号,表示一条指令的结束,不可缺少。  本系统产生 4 路控制信号,分别控制四旋翼的四个电机, 其中 <ch> 表示控制哪一路电机,<time> 表示 PWM 信号宽度, 映射为电机旋转的速度。飞控接收到 PWM 信号后,分别控 制四个电机转动。 3 系统测试结果与分析  3.1 测试环境  本系统的测试环境如下:  系统环境 :嵌入式 Linux、Linux mint 17、Windows7;  硬件环境:嵌入式 Linux 开发板、PC、游戏手柄、四旋翼、 PWM 控制器 ;  网络环境 :WiFi 网络,IP 地址块 192.168.1.0/24。  3.2 测试结果  经过测试系统达到设计需求。在 WiFi 网络环境下,游 戏手柄能控制飞行器的飞行,并能在空中完成悬停、旋转、起伏、 跌落、翻转等动作。飞行器具有抛出之后保持平衡悬停,连 续飞行时间达到 10min 左右,载重轻量物体等性能。图 5 为 飞行器实物图。图 6 为客户端调试运行示意图。 3.3 结果分析  本系统最终能够通过遥控手柄控制四旋翼飞行,达到预 期的目的。但是本系统还存在以下几个问题 :手柄控制飞行器 稳定性较差,由于手柄自身按键原因和数据处理的误差因素, 致使不能精确地映射出遥控器的所有行程 ;手柄灵活性也次 于遥控器,从而使得手柄的控制精准度低于遥控器 ;KK 飞控 板相对简单,易操作,但其对飞行器姿态控制要求较低,自 稳能力差;无线网络覆盖范围小,造成控制范围小,易于失控。 由于本系统存在上述几个问题,所以后期将对本系统做 进一步的更改。首先,将摇杆手柄换成标准的遥控器或进一 步优化手柄控制算法,使其控制更加准确灵活。其次,可以 使用性能更好的飞控板,提高飞行器的自我调节能力。另外, 建立无线局域网,扩大飞行器的飞行范围。 4 结 语 本次设计采用模块化的硬件和软件设计方法,成功实现 了使用摇杆手柄,通过网络传递控制信息来控制飞行器的飞 行,实现了预期的功能。  本设计的创新点具有以下几点 :  (1)通过摇杆手柄替代标准的遥控器,操作简单,并且 大大降低了开发成本。  (2)采用无线网络通信协议来完成遥控信息的传递,成 功将物联网技术运用到本课题中。  (3)将嵌入式 Linux 操作系统运用到飞行器上,可以在 其中添加其它应用,比如加载摄像头用于航拍等。

    时间:2021-08-18 关键词: 物联网 网络控制 四旋翼飞行器 嵌入式开发

  • 嵌入式还有哪些风口值得入?

    昨天应邀发了个内推,今天来接着前天的话题说一下,当前乃至未来5-10年,嵌入式开发者还有哪些风口。 开始之前先说一下风口的本质,其实就是一段时间的人才供需不平衡。说白了就是由于行业突变,突然爆发,敏锐的资本快速进入,导致短时间内行业大量扩张,需要大量开发者。 但是人才不能瞬间大量产生,要慢慢去成长和转化的。所以短时间(一般一两年,乃至三四年五六年,很难超过10年)新的风口行业对人才的需求大于供给,招不到人怎么办?加钱啊! 有个词叫“猪周期”,大家可以去了解下,其实是一样的道理。所以不得不感慨马克思的厉害,供求关系真的说透了市场经济的真理! 所以我们要找风口,就得瞅那些行业会爆发,资本会涌入,懂的人少,人才供不应求的行业就肯定没错。 这里还得综合考虑行业面临的宏观政策(譬如最近K12在线教育就被政策打击了,风口变成了深井) 还得考虑存量技术人员数量(譬如鸿蒙应用开发,从存量安卓app开发者转就很容易,量又足,新进入者就机会不大肉不多) 还得考虑风口涉及技术深度和难度有没有护城河,有些风口太好学了所以很快就过去给打成破烂了(譬如前几年的UI设计,电商设计等)。 最后还得考虑风口和你以前的技术积累,项目经验等的关联性,不要跨度太大。有时候风口是真风口,但是和你之前做了多年的东西没关联,你去做没优势啊! 以上是一些分析原则,讲出来是希望大家能有所思考,而不是只看结论。下面来说结论,逐一讲一下我认为的作为一个嵌入式软件工程师,未来5-10年有哪些风口。 (1)智能网联汽车。 这个前天已经说过了,不再赘述,写出来是为了完整。我个人认为这个风口不仅够大而且会持续10年乃至更久。最基本的原因就是“自动驾驶没那么容易实现”,只要产品还没做好,还有的创新,那么行业工程师就还有用,风口就还在。什么时候遍地自动驾驶汽车了,平均每人一台还多(就像现在智能手机普及度一样了),那么风就停了。 (2)音视频。 这个是前天文章后留言问的最多的一个,因为这个风口我们在前几年就出了海思项目课程,所以很多同学知道,甚至已经在学或者计划学完嵌入式linux核心课程之后去学。 音视频相关的风口包括音视频采集和ISP处理,音视频编解码,音视频网络传输,音视频识别等。技术栈比较长,技术比较深度,所以行业生命周期和薪资都很不错。 音视频为什么会成为风口?我认为有以下几个原因: 第一,大部分人更喜欢看视频,然后是音频,然后是图片,最后才是文字。所以你看抖音真火,微信都是发语音。第二,4G和5G提供了廉价且稳定随处可得的网络,抖音等提供了方便好用的软件工具,为音视频的生产和传播提供了必要条件。第三,音视频已经有了清晰的商业逻辑,直接说就是做这个商家有钱赚,为什么不做呢? (3)端侧AI。 AI的部署有三种。云端,边缘端,终端。现在云端AI已经比较成熟大量应用了(譬如小度小度,天猫精灵这类),边缘端依赖于5G还在爬坡,而终端AI是正在快速突破未来有很大用武之地的AI实现方式。 所谓端侧AI,就是将训练好的AI模型经过处理(简化,剪枝,量化等)后直接运行在终端MCU或者SoC内,利用本地cpu(或本地dsp,npu)算力,来执行推理,进行工作。最典型的案例就是关键词唤醒。 端侧AI是嵌入式开发者的领域,是嵌入式软件系统在智能时代的进化方向,是嵌入式软件开发者必然需要接触的新技术,是程序驱动到数据驱动的转变在嵌入式开发中的直接体现。 目前已经有不少AI框架在研究和逐步支持端侧AI了,譬如google的tensorflow lite和tensorflow lite micro,以及华为的mindspore lite(将来肯定也会有micro)。在芯片厂商这里,ST和NXP也都推出了自己的部分面向端侧AI的工具和demo。 朱老师也已经在端侧AI领域做了一定研究和积累,后续会陆续推出系列学习课程和项目实战,帮助大家去抓取这个风口,敬请期待! (4)国产芯片相关嵌入式开发。 自从2018年华为被制裁开始,中美科技争斗就注定不可能善了。半导体是我们的软肋,也是漂亮国重点打击我们的领域(所以各种缺货涨价)。而国家战略也很清晰,投入大量资源攻坚芯片,这也注定了国产芯片会不断崛起。 这个过程会诞生大量机会,产生很多高端岗位,这也是近一两年大家都觉得工资涨了,而且年薪50-100万的岗位似乎变多了,不像以前那么遥不可及了的原因。 芯片行业属于IT行业上游,价值很高,其实一直薪资很高。但是以前国内芯片都靠进口,上游都在国外,所以高端岗位(譬如芯片底层库开发,编译器工具链开发,IDE开发,操作系统开发等)也都在国外,所以国内嵌入式开发者以前都是下游产品级开发层面岗位,年薪到了30万左右再想往上就很难了。 现在机会来了。国产芯片的崛起过程必然带来大量高端岗位需求,大家尽可以去争,这是属于我们的时代机遇。这就是国家说的产业升级,这就是破除内卷的正确方法。 顺便说一句,大家都觉得互联网比嵌入式赚钱多,至少有一个原因就是因为中国的互联网行业一直是自己把持的,BAT都在自己的领域里击败了外资,守住了国门,所以这个行业的高端岗位都在国内,所以赚钱啊。而嵌入式行业,芯片相关的开发者,未来10年要去复制互联网行业过去十年的逆袭! 写在最后: (1)以上写了4个我认为未来5-10年的嵌入式开发者相关的风口。仅代表个人观点,不一定完全对,欢迎大家评论区留言讨论。 (2)有人可能疑惑怎么没有物联网?其实物联网并不是一个行业,而是一揽子综合技术。以上几个风口里其实都有物联网的影子。智能网联汽车本身就是个物联网设备,音视频的摄像头也是个物联网设备,端侧AI和芯片也大多都是物联网设备。可以这么讲,物联网是更基础层面的概念,是未来电子设备的基本属性,会无痕融入,根本都不必专门强调。

    时间:2021-07-26 关键词: AI 嵌入式开发

  • 瑞萨电子针对亚太物联网市场推出Renesas Synergy™ 平台

      2016年7月20日,中国,北京讯——瑞萨电子(中国)有限公司今日宣布Renesas Synergy™ 平台开始在亚太市场正式上线。Renesas Synergy是一种经过验证的完善平台,融合了全面集成软件、一系列可扩展的微控制器(MCU)以及统一的开发工具,帮助嵌入式系统开发人员加快物联网设备应用的创新产品开发,并缩短上市时间。Synergy软件包(SSP)是Synergy 平台的核心组成部分,经过瑞萨技术验证,并由瑞萨提供支持、和维护服务。SSP包含实时操作系统(RTOS)、广泛的中间件和通信栈等,均可通过稳健的应用程序编程接口(API)进行访问,让用户无需在低层次的细节问题上浪费时间。开发人员可直接在API层级开始MCU软件的开发过程,从而使其能够专注地研究如何开发出差异化的产品,而避免做一些无差别的重复性工作。此外,该平台还能够降低系统开发人员的总成本,帮助其消除影响创新设计开发的诸多阻碍因素。   东南亚、澳大利亚和新西兰的系统开发人员现在可通过Synergy Gallery网站(只需点击授权许可)直接下载专业软件和开发工具(无需支付费用或版权费)。该平台将于今年10月在中国大陆/香港地区及台湾地区上线,实现Synergy平台在全球范围的全面上线。   Synergy平台于2015年6月在美国市场首次推出,随后又相继在欧洲和日本上线,其通过持续扩增功能和拓展业务合作,不断强化技术实力,并凭借独特的价值理念在市场中实现增长。   Synergy平台由五大要素组成,提供最优化的功能和最佳的用户经验,这些要素包括Synergy软件,Synergy微控制器,Synergy 工具和套件, Synergy解决方案,Synergy Gallery。   今年10月27日Renesas DevCon China  — 瑞萨全球开发者大会将在深圳举办。届时Synergy平台将首次在中国正式亮相。   关于瑞萨电子(中国)有限公司   瑞萨电子(中国)有限公司是瑞萨电子株式会社(TSE:6723)(2010年4月由NEC电子公司(TSE:6723)和株式会社瑞萨科技合并成立)在中国成立的独资公司,公司业务覆盖了面向各种应用的设计、开发、销售和技术支持。瑞萨电子以世界占有率No.1的MCU为中心,提供系统LSI、模拟与功率半导体器件等产品,以及适合汽车电子、工业、消费类电子、网络通信、办公自动化等各种应用的解决方案。 欲了解更多信息,敬请访问网站:www.cn.renesas.com

    时间:2020-08-25 关键词: 瑞萨 物联网 嵌入式开发

  • 分配中断向量表,浅谈ARM的硬件启动程序设计

    众所周知,ARM要求中断向量表必须防放置在从0x00000000地址开始的连续32字节的空间内。ARM9定义的中断向量在向量表中的地址如下面所示,当中断发生后,ARM处理器会强制把PC指针指向中断向量表中对应的终端类型的地址处。 中断向量表的程序设计如下: CODE32 AREA Startup,CODE,READONLY ; /* 异常向量表 */ Vectors LDR PC, ResetAddr ;把ResetAdde地址上的存储器的内容装载到PC上 LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0 LDR PC, IRQ_Addr LDR PC, FIQ_Addr ResetAddr DCD ResetInit;为ResetAddr分配以ResetInit地址值, UndefinedAddr DCD Undefined SWI_Addr DCD SoftwareInterrupt PrefetchAddr DCD PrefetchAbort DataAbortAddr DCD DataAbort Nouse DCD 0 IRQ_Addr DCD IRQ_Exception FIQ_Addr DCD FIQ_Handler 对ResetAddr而言,此时ResetAddr实质上只作为一个指针(指向ResetInit),没有分配空间,ResetAddr地址的存储器上装载的是ResetInit的地址。 ResetInit BL InitStack ; 初始化堆栈 BL TargetBusInit ; 总线系统初始化 (函数中不允许堆栈操作) BLTargetResetInit; 针对目标板的系统初始化 以ResetInit为例,存储器空间分配如下所示: 注意中断向量表要存放在代码段startup的开始处(Entry开始),而程序被链接时,该startup代码段被链接在整个程序的入口地址。

    时间:2020-07-17 关键词: ARM 嵌入式开发

  • 嵌入式开发需要什么准备?选择ARM7还是ARM9?

    众所周知,一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成, 嵌入式图标 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。 ARM公司设计了许多处理器,它们可以根据使用的不同内核划分到各个系列中。系列划分是基于ARM7、ARM9、ARM10、ARM11和Cortex内核。后缀数字7、9、10和11表示不同的内核设计。数字的升序说明性能和复杂度的提高。嵌入式定制 ARM7系列处理器是英国ARM公司设计的主流嵌入式处理器ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。ARM7没有MMU。 ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指、译码、执行。正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。 ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。 ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。 ARM7与ARM9的区别 1.时钟频率的提高 虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。 2指令周期的改进 指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。 3.MMU(内存管理单元) ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。ARM9一般是有MMU的,ARM9940T只有MPU,不是一个完整的MMU。 这一条很重要,MMU单元是大型操作系统必需的硬件支持,如linux;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。 4.ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。 5.在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。 如果是一般性控制系统或仅仅用来替换8获16位机,ARM7显然是首选;但如果用在网络通信或大型的音视频处理等,则ARM9较合适。

    时间:2020-04-12 关键词: ARM 嵌入式开发

  • Google开源注册Pigweed,涉足嵌入式开发?

    3月21日,Google 不久前在官方博客上宣布了开源 Pigweed 的消息。Pigweed 是啥?一个月前,Google 向美国专利商标局注册了 PIGWEED 商标,类别是“计算机操作软件”。 当时社区里认为这是 Google 继 Android、Chrome OS、Fuchsia 之后的第 4 个操作系统。 然而官方消息出来,它并不是操作系统,而是一组用于嵌入式开发的工具模块的集合,特别是针对如 STM32 这样的微控制器。它是为嵌入式开发工程师和创客而设计的。 嵌入式开发的挑战是需要不断的调试设备和切换环境。而 Pigweed 提供的模块正是满足在整个生命周期内加速嵌入式开发的需求,比如包含了必需的工具,简化环境设置;通过分布式测试加快了编译、开发板测试的周期;预先设置了代码格式检查,保证快速进行代码提交。 【雷锋网注:上图为 Pigweed 的设置启动环境】  所有这些开发工作都可以在代码编辑器里自动完成,还可以在多个设备上并行测试,节省了很多时间。 【雷锋网注:上图为 Pigweed 的代码编辑器界面】 虽然 Google 的说法非常低调,声明这只是帮助开发人员方便启动新项目的工具集合,但毕竟这是从 Web 开发领域涉足到嵌入式开发领域,谁知道 Google 的下一步呢? 谷歌特别注明,Pigweed 还在早期开发阶段,目前并不适合用于生产。Pigweed 含义是一种营养丰富、快速生长的杂草,团队认为这个名字有趣、好玩,反映出项目的成长。

    时间:2020-03-22 关键词: 开源 嵌入式开发

  • 在不就的未来,嵌入式 FPGA 编程只需简单一步即可完成

    我们都知道,FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。嵌入式 FPGA 将不再是梦想。根据 Achronix,未来,芯片设计者只要简单地将线对线互连加进其 SoC 设计即可。 Achronix Semiconductor 营销副总裁 Steve Mensor 表示,这款被称为 Speedcore 的嵌入式 FPGA (eFPGA) IP 产品目前已经就绪且正出货中。尽管并未透露出货数字以及客户名称,该公司表示这款产品现在已经提供给客户使用了。 Speedcore 象征着该公司首次进军 IP 业务。Achronix 自 2013 年以来一直在生产其旗舰级 FPGA 产品——Speedster 22i。因此,对于 Achronix 来说,这是一条漫长的道路,因为该公司在 4 年以前才首次宣布开发 eFPGA IP 的计划。 尽管如此,Achronix 在此看到了一线曙光,预计今年可望首次盈利,营收上看 1,200 万美元。根据 Mensor 表示,该公司预计其销售额将在 2017 年成长超过 4,000 万美元,进一步使 eFPGA IP 业务成为带动 Achronix 成长的“重要驱动力”。 设计工具 Speedcore 采用与 Achronix Speedster 22i FPGA 相同的高性能架构。专为运算和网络加速应用而设计的 Speedcore eFPGA IP 将整合至其他公司的 ASIC,应用于数据中心、无线基础设施和网络设备。 Mensor 认为,eFPGA 的最大优势在于其设计工具。多年来,Achronix 了解到客户需要更好的设计工具,为其带来优质的结果、简单易用性以及第三方整合,而这些特点都是“Achronix CAD 环境”(ACE)所能提供的一部份。 为了成为系统的一部份,eFPGA IP 必须具备易于整合于 SoC 的功能设计。Achronix 提供了可让客户直接整合于其 SoC 的 GDS II 版 Speedcore IP,以及可让客户用于设计、验证与编程 Speedcore eFPGA 功能的 ACE 工具客制版。 CPU 投片? 整个电子产业都知道 FPGA 极其热门。只要看看微软(Microsoft)的 Project Catapult 就知道了。 微软解释,这项计划是专为“加速微软在网络、安全、云端服务和人工智能(AI)等方面的超级运算基础”而打造的,并作为其于“后 CPU”(post-CPU)的各种技术——包括 GPU、FPGA 与 ASIC 的最大睹注。 微软这项 Project Catapult 的关键就在于 Altera Stratix V D5 FPGA。Mensor 强调,整个电子产业普遍存在的看法是,微软的计划促成了英特尔(Intel)决定收购 Altera。 藉由 AlphaGo,Googler 的客制 Tensor 处理器单元也激励了许多工程师,促使他们开始考虑从 ASIC 到 GPU 和 DSP 的一切。Mensor 解释说,他们正在寻找能够更有效率处理“加速非结构性搜寻、机器学习与人工智能”的技术。 Achronix 在其中看到了机会。     FPGA 应用领域以及成长阶段 FPGA 从 1990 年代中期作为“胶合芯片”(glue chip)开始流行于市场上,如今正重新定义其价值,成为 CPU 的协同处理器。在这个角色上,FPGA 可加速加密 / 解密、压缩 / 解压缩,或甚至是预处理资料封包,以便只让有关的共享资料可被传送与进行处理。 当进行非结构化搜寻时,FPGA 的平行环境经证实是十分有效的。例如,相较于专为划分功能成为较小部份以及依顺序作业而设计的 CPU 而言,FPGA 能以平行方式,在单一频率周期完成整个任务。 当无线基础设施必须涵盖多个地理区时,FPGA 是可编程数位前端和地理区客制化的一张备用王牌。 在芯片之间布线 尽管在 SoC 中嵌入 FPGA 总能为设计者带来不错的设计想法,但对于 FPGA 供应商而言,要实现这个愿望并不容易。 “在不同芯片之间布线是非常困难的,”Mensor 说。成功整合 eFPGA IP 的关键在于尽可能降低延迟并提高吞吐量。该公司强调,Achronix 最先提供了具有嵌入式系统级 IP 的高密度 FPGA。 对于“希望将 ASIC 设计的所有效率以及 eFPGA 可编程硬件加速器的灵活性结合于同一芯片”的公司,Achronix 为其提供相同的 eFPGA 技术。 而对于 IP 供货商而言,整合极具挑战之处在于客户对于特定应用所要求的优化芯片尺寸、功耗与资源分配总有不同的想法与方法。他们还自行定义了查找表数目、嵌入式内存模块女以及 DSP 模块的数量。 但问题并不一定是客户的不同建置方式,而是他们经常使用不同的方法进行芯片测试与验证。Mensor 解释,客户并不知道 IP 供货商的工具如何与其搭配作业。例如,“我们经常听到客户问:‘如何才能用你们的 IP 关闭计时功能?’” 虽然 Achronix 并未为客户整合其 IP,其业务取决于所提供的工具是否足以让客户快速完成设计     Achronix NT31P1 Achronix 也向外收购了一些第三方 IP,包括接口协议、可编程 IO、SerDes 和 PLL 等。那么在开发 FPGA 和满足客户需求时,Achronix 是否遇到困难?Mensor 说:“我们总会试着把遇到的每个问题都转化为一次机会。” 对于 Achronix 来说,其关键在于整合该公司的 FPGA 架构。最终的结果是一款更精简的 Speedster 22i,其可编程 IO、SerDes 和接口控制器占用的空间更少,相形之下,竞争对手的高阶 FPGA 通常使用了大约 50%的芯片面积。     Achronix NT31P2 FPGA 芯片尺寸比较 提高延迟和传输速率 Achronix 认为,能够与 SoC 实现线对线连接的 Speedcore eFPGA,有助于消除大量的可编程 IO 缓冲器,从而使功耗降低一半。此外,Speedcore 的芯片尺寸也比标准 FPGA 更小,使得 eFPGA 的成本可降低 90%以上。 然而,Mensor 强调,“对于大多数客户而言,最大的决定因素在于延迟和吞吐量方面的问题。”根据 Achronix,相较于独立的 FPGA,eFPGA 具有更高的接口性能,可望提高 10 倍的吞吐量和延迟性能。

    时间:2020-01-12 关键词: FPGA 嵌入式 SoC achronix 嵌入式开发

  • 一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法

    小编为大家总结了一篇基于 STM32 和 CAN 总线的温度监控系统的设计,通过上位机与下位机的通信,实现对温度数据的监控,并经初步实验达到了设计的要求。 1 系统总体方案概述 系统总体框图如图 1 所示,本系统采用主站+从站的结构,CAN 主站主要实现温度数据的存储以及 CAN 总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集。CAN 从站采集的温度,经过 CAN 总线传送到 CAN 主站,主站将各从站的温度值传送到系统上位机中。上位机对各点的数据进行实时曲线显示并进行存储,上位机可以设定报警值,当节点温度超过设定值的时候,上位机发出报警声。在没有上位机的场合,主站将数据以文本文档的形式存储在主站的 SD 卡中。     图 1 系统总体框图 2 系统硬件设计 2.1 CAN 主站硬件设计 主站电路如图 2 所示,主要有电源模块、STM32 模块、CAN 收发器模块、RS232 串口模块和 SD 卡模块。 其中 STM32 模块由 STM32F103RBT6 和周边时钟、复位、调试等组成。电源模块由外部输入+5V 电压,经线性压降 AMS1117-3.3V 后供 STM32 使用。CAN 收发器模块采甩 NXP 的高速收发器 TJA1040,TJA1040 是 PCA82C250 的替代品,它完全符合 ISO 11898 标准,具有高速、低功耗、低电磁辐射的优点。RS232 电平转换芯片采用 MAX3232,它具有低功耗、高数据速率以及增强型 ESD 保护等特性。采用专有的低压差发送输出级,+3.0 V 至+5.5V 供电时利用内部双电荷泵保证 RS-232 性能。工作时,电荷泵仅需要四个 100 nF 的小电容。SD 卡模块采用四线制 SPI 总线与 SD 卡相连接。 2.2 CAN 从站硬件设计 从站电路如图 3 所示,主要有电源模块、STM32 模块,CAN 收发器模块,PT100 模块和从站地址选择模块。     图 2 CAN 主站电路框图                图 3 CAN 从站电路框图 其中电源模块、STM32 模块和 CAN 收发器模块与 CAN 主站相同。PT100 模块,采用传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过 TL431 稳至 2.5V。从电桥获取的差分信号通过两级运放放大后输入 STM32 的 AD 输入口。从站地址选择模块由 8 位拨码开关组成,连接到 STM32 I/O 的 PC6-PC13。 3 系统软件设计 本系统软件由 CAN 主站软件、从站软件以及 Delphi 上位机软件构成。其中 CAN 主站和从站程序用 C 语言编写,上位机程序用 Obieet Pascal 编写。 3.1 CAN 主站软件设计 CAN 主站的功能是发送远程帧向从站查询数据、通过 AD 的转换结果计算芯片内部温度传感器的温度值、接收从站发送的数据帧、发送温度数据到上位机或存储数据到 SD 卡。CAN 主站程序如图 4 所示。     图 3 CAN 主站程序流程图 图 5 写 SD 卡程序流程图 写 SD 卡部分程序流程图如图 5 所示,SD 卡部分主要用到了移植的 FATFS 文件系统提供的访问 FAT 卷的应用接口(Application Interface)。主要用到了以下函数: ·f_mount- 注册/注销一个工作区域 ·f_open- 打开/创建一个文件 ·f_close- 关闭一个文件 ·f_lseek- 移动/写指针,扩展文件大小 ·f_puts- 写字符串 ·f_printf- 写一个格式化字符串 3.2 CAN 从站软件设计 CAN 从站的主要功能是通过 AD 转换器检测 PT100 电桥的差分输出电压,然后计算得出此节点的温度值,最后通过 CAN 总线传送给 CAN 主站。其中只有在 CAN 从站收到与自己节点号相同的主站发送的远程帧的时候,从站 CAN 控制器才发出一个数据帧。CAN 从站程序流程图如图 6 所示。     图 6 CAN 从站程序流程图 图 7 Delphi 实时曲线部分流程图 3.3 Delphi 上位机软件设计 本上位机软件主要实现了五个功能:实时曲线显示当前各从节点的温度;打印实时曲线;将实时曲线保存为图片;将实时曲线的数据保存为 TXT 文档以及实时温度超过报警值时报警。 本系统上位机串口通讯控件采用 SPCOMM,该控件具有丰富的与串口通信密切相关的属性及事件,支持多线程;提供了对串口的各种操作。图形控件采用 TChart,TCharc 是 Delphi 里面一个标准的图形显示控件。它可以静态设计(At Design TIme)也可以动态生成。该系统设计采用的版本为 TeeChart 7;实时曲线部分流程图如图 7 所示。上位机程序完成后界面如图 8 所示。     图 7上位机界面 4 结束语 本文介绍了基于 STM32 和 CAN 总线的温度监控系统的设计,初步实验证明,上述的硬件及软件设计基本达到了设计要求。本系统适用于多节点、远距离的场合,并具有实时性好、可靠性高的特点,具有一定的应用价值。

    时间:2019-12-24 关键词: can 电源模块 can总线 sd卡 嵌入式开发

  • 移动机器人选配功能有何应用价值?

    智能制造,源于人工智能的研究。一般认为智能是知识和智力的总和,前者是智能的基础,后者是指获取和运用知识求解的能力。智能制造的发展及智能物流的兴起,极大地带动了移动机器人产业的蓬勃发展。但是由于不同的使用场景对移动机器人的需求都不一样,导致80%以上的项目都是个性化、定制化需求,存在研发难度大、周期长、成本高的问题。 针对这样的情况,仙知机器人推出了移动机器人最强大脑SRC系列核心控制器,以超强适配性和强大的功能来满足用户定制化、个性化需求。一方面,标准版的SRC核心控制器可适配双轮差动基础运动车型,客户还可根据需要选择单舵轮、双舵轮、四驱麦克纳姆轮等多种高级运动车型,满足工业移动机器人、商用移动机器人、自动叉车的不同应用需求;另一方面,SRC核心控制器拥有全面且出色的基础功能与丰富实用的选配功能供用户自主选择搭配,助力客户一站式解决各类移动机器人应用难题。 那究竟有哪些选配功能?这些选配功能有何应用价值? 3D避障功     应对场景 当使用2D激光传感器进行定位导航时,由于2D激光雷达只能检测到激光水平面的障碍物,对地面上的坑洞、减速带、高于或低于激光水平面的立体障碍物或其它影响移动机器人安全运行的障碍等无法识别检测,存在一定的安全隐患,这时便需要选配3D避障功能。 使用价值 选配3D避障功能,通过加入3D视觉传感器能对机器人运行通道上的立体的障碍物进行识别检测,并根据配置让机器人选择停障或绕行,能够提升运输安全性,减少地面因素对移动机器人运行的制约。 激光反光板导航     应对场景 用户现场车间、仓库某些区域经常会有高动态的情况,车间变化大,导致采用激光自然轮廓进行定位导航时会失去参照物,需要增加固定的辅助定位标识。 使用价值 选配激光反光板导航功能,在激光自然轮廓导航的基础上融合激光反光板导航,通过在划定的高动态区域内进行激光反光板导航,其余区域恢复激光导航,两种导航方式自由切换保证机器人的定位和运行。 二维码导航功能     应对场景 在长廊或高动态的环境中,由于无线通信信号强度影响及环境变化的因素,会导致移动机器人出现定位丢失的情况。 使用价值 选配二维码导航功能,在激光导航的基础上融合二维码导航,在划定区域内进行二维码导航,其余区域恢复激光导航,实现导航方式自由切换的同时减少信号强度及环境变化对移动机器人运行的影响。 自动充电功能     应对场景 当移动机器人电量较低需要进行充电时,如果采用手动充电则需要人工的介入,而人工介入的时间具有不确定性。 使用价值 选配自动充电功能,由仙知提供自动充电的机器人端与充电桩设计方案,能够实现移动机器人自主充电,并且不需要人工参与。 栈板识别、料笼识别功能         应对场景 通常情况下栈板及料笼里的货物需要人工存放,导致栈板或料笼总会存在不同程度的偏移指定的具体位置,使得移动机器人难以完成在指定位置的料笼、栈板搬运。 使用价值 选配栈板功能或料笼识别功能,通过加入视觉识别传感器来识别栈板(料笼)的精确位置,能够使自动叉车始终准确叉取栈板及料笼。 货架识别及顶升随动功能     应对场景 当使用潜入顶升或潜伏牵引机器人进行货架搬运时,由于人工摆放货架总会与指定的位置有所偏差,导致移动机器人无法安全、顺利搬运货架。 使用价值 选配货架识别及顶升随动功能,可使移动机器人自主识别货架的精确位置,从而保证移动机器人钻入货架后处于货架的正下方;如果是潜入顶升机器人,顶升随动功能使得机器人搬运货架时无论直行还是转弯过程中,托盘上的货架不随底盘转动,有利于安全顺利的完成作业任务。 Wi-Fi漫游功能     应对场景 在面积较大的工厂车间,通常会有多个AP来保证设备之间的通信,但是移动机器人在多个AP间运行,由于网络延迟可能会导致数据丢失或导致调度系统不稳定的情况发生。 使用价值 选配Wi-Fi漫游功能,通过增加车载无线客户端,能够保证移动机器人在多个AP之间稳定运行。 功能模块化的设计,能让用户根据实际需求进行选择搭配,有利于用户个性化需求的实现,并减少不必要的开发成本与时间成本,同时也有利于仙知为更多的用户服务,创造更大的价值。 有关仙知 上海仙知机器人科技有限公司,是一家以移动机器人控制与调度为核心的高新技术企业。作为一站式移动机器人方案专家,仙知机器人掌握了具有自主知识产权的移动机器人核心技术,并在工业自动化领域内拥有丰富的项目经验。仙知机器人致力于服务各行业集成商,并为其提供包括移动机器人控制、调度与信息管理在内的一站式移动机器人解决方案。 目前,仙知机器人的产品、技术及解决方案已在汽车制造、家电制造、3C电子制造、半导体制造、食品烟草、电商仓储、安防巡检、商用服务、医疗教育等领域广泛应用。 仙知机器人积极践行企业使命—“让智能创造价值”,不断坚持技术创新,并以开放包容、合作共赢的姿态携手合作伙伴,最大程度地满足客户对产品、技术与解决方案的高品质追求,力争“成为机器人产业的创新者与引领者!”

    时间:2019-12-15 关键词: 移动机器人 wi-fi漫游 嵌入式开发

  • LED 的原理及应用

    LED 已经融入到生活中的每一个角落,现在大街上随处可见的 LED 显示屏,还有装饰用的 LED 彩灯以及 LED 车灯,处处可见 LED 灯的身影。 1. 正向电压降低,暗光 A:一种是电极与发光材料为欧姆接触,但接触电阻大,主要由材料衬底低浓度或电极缺损所致。B:一种是电极与材料为非欧姆接触,主要发生在芯片电极制备过程中蒸发第一层电极时的挤压印或夹印,分布位置。 另外封装过程中也可能造成正向压降低,主要原因有银胶固化不充分,支架或芯片电极沾污等造成接触电阻大或接触电阻不稳定。正向压降低的芯片在固定电压测试时,通过芯片的电流小,从而表现暗点,还有一种暗光现象是芯片本身发光效率低,正向压降正常。     2. 难压焊:(主要有打不粘,电极脱落,打穿电极) A:打不粘:主要因为电极表面氧化或有胶 B:有与发光材料接触不牢和加厚焊线层不牢,其中以加厚层脱落为主。C:打穿电极:通常与芯片材料有关,材料脆且强度不高的材料易打穿电极,一般 GAALAS 材料(如高红,红外芯片)较 GAP 材料易打穿电极。D:压焊调试应从焊接温度,超声波功率,超声时间,压力,金球大小,支架定位等进行调整。 3. 发光颜色差异: A:同一张芯片发光颜色有明显差异主要是因为外延片材料问题,ALGAINP 四元素材料采用量子结构很薄,生长是很难保证各区域组分一致。(组分决定禁带宽度,禁带宽度决定波长)。B:GAP 黄绿芯片,发光波长不会有很大偏差,但是由于人眼对这个波段颜色敏感,很容易查出偏黄,偏绿。由于波长是外延片材料决定的,区域越小,出现颜色偏差概念越小,故在 M/T 作业中有邻近选取法。C:GAP 红色芯片有的发光颜色是偏橙黄色 4. 闸流体效应; A:是发光二极管在正常电压下无法导通,当电压加高到一定程度,电流产生突变。B:产生闸流体现象原因是发光材料外延片生长时出现了反向夹层,有此现象的 LED 在 IF=20MA 时测试的正向压降有隐藏性,在使用过程是出于两极电压不够大,表现为不亮,可用测试信息仪器从晶体管图示仪测试曲线,也可以通过小电流 IF=10UA 下的正向压降来发现,小电流下的正向压降明显偏大,则可能是该问题所致。 5. 反向漏电: A:原因:外延材料,芯片制作,器件封装,测试一般 5V 下反向漏电流为 10UA,也可以固定反向电流下测试反向电压。B:不同类型的 LED 反向特性相差大:普绿,普黄芯片反向击穿可达到一百多伏,而普芯片则在十几二十伏之间。C:外延造成的反向漏电主要由 PN 结内部结构缺陷所致,芯片制作过程中侧面腐蚀不够或有银胶丝沾附在测面,严禁用有机溶液调配银胶。以防止银胶通过毛细现象爬到结区。以上就是 LED 技术的相关知识,相信随着科学技术的发展,未来的 LED 灯回越来越高效,使用寿命也会由很大的提升,为我们带来更大便利。

    时间:2019-12-13 关键词: LED 显示屏 嵌入式开发

  • “软”实力嵌入式云平台

    随着科技的发展,我们进入智能物联网时代,越来越多的智能硬件涌现,那么,智能硬件从何而来?主控采用更高的主频?更大的内存?都不是,数据上云才是关键!ZLG嵌入式核心板搭配ZWS云平台,“软”实力助您快速实现智能硬件开发! 什么是核心板软实力? 开始介绍之前,我们先来了解一下,什么是软实力。 所谓的软实力,指的就是硬件模块除一些硬件指标(如处理器主频、内存容量)之外的软件配套方案支持。我们都知道,一块核心板,出厂的时候,犹如新生的婴儿,啥也做不了,要想在IoT各行业成长为顶梁柱,则需要大量的软件开发工作,包括移植操作系统和驱动,写终端应用,开发业务服务器进行对接,以及开发对应的Web和App应用。 要完成以上工作,避免不了开发周期长、开发成本高、软件不稳定等致命的问题,那有没有更好的解决方案呢?有的,就是将上述各环节中有共性的地方抽取出来,由核心板厂商直接配套提供,那么,客户就可以只关注自己有差异的业务部分则可,整套应用系统的开发周期和成本会大幅度降低。 ZWS提升核心板软实力解决方案 ZWS云平台主要致力于解决设备端联网的共性问题。如用户使用ZLG致远电子的核心板,已经内置了ZWS的SDK,在设备端经过简易二次开发,就可以将设备接入到ZWS物联网云平台,并可以使用ZWS控制台系统提供的丰富管理功能,包括设备状态查看、设备数据分析、设备配置修改、设备远程实时控制、设备固件管理和升级等。     ZWS云平台系统架构 如果您没有特殊需求,无需再开发就可以直接使用了。如果您还有自己的特殊需求和业务,可以基于ZWS云平台提供的接口自行开发应用。如果您有第三发系统需要对接,ZWS的数据也支持透传给第三方系统,便于您统一管理。     ZWS云平台优势特点 M1052核心板接入ZWS云平台案例 以ZLG致远电子M1052核心板为例,我们来实际了解一下,ZWS是如何赋能和提升核心板软实力的。 操作步骤如下: 准备好一套基于M1052核心板的开发套件; 由于M1052核心板搭载的是ZLG致远电子自主研发的AWorks操作系统,已经内置有ZWS的SDK库,我们基于SDK,简单修改应用固件,实现数据上传逻辑和指示灯控制逻辑; 登录ZWS平台,添加对应的自定义设备类型,并基于此设备类型添加设备;     创建自定义设备类型     添加设备到系统 将M1052开发套件上电,联网,则可以在自己的帐号下远程管理和控制这套设备了。     查看设备数据     控制设备LED灯     设备LED灯控制实验

    时间:2019-12-02 关键词: 嵌入式 云平台 嵌入式开发

  • 意法半导体更新了STM32 微控制器

    近期,意法半导体宣布其更新了STM32 *微控制器TouchGFX用户界面软件框架,新增功能能够让图形用户界面变得更流畅,动态效果更好,并降低对存储器和CPU的需求。 TouchGFX是STM32生态系统中的一套免费软件工具,包括TouchGFX Designer PC(PC端工具)和TouchGFX Engine(设备端软件)。TouchGFX Designer PC用于设计和配置丰富多彩的用户界面,而TouchGFX Engine则运行在终端设备上,使用户界面实现高性能。最新的4.12版TouchGFX对这两个软件都进行了更新。用户现在可以在单片显示解决方案上构建先进的用户界面,无需外部RAM存储器或闪存,节能特性可以延长电池续航时间,简化的开发流程有助于加快产品入市。 现在,TouchGFX Engine的部分帧缓冲模式只占用6KB的RAM空间,全功能用户界面仅需要16KB的RAM空间,因此,小存储容量的STM32 MCU无需外部存储器也能为用户带来出色的图形界面体验。此外,新的8位亮度(L8)包含16位、24位和32位色深,降低了对闪存容量的需求。尽管存储容量较小,但是TouchGFX可利用STM32 Chrom-ART Accelerator™技术提高图形处理速度,处理复杂的视觉效果,最大限度地提高界面性能。新升级版还包括一个新的可缓存的含有动态位图的容器,可降低CPU高帧率运行流畅动画的负荷。 用户现在还可以选择6位色深,这样可以节省RAM和闪存的空间,同时还可以为创建入门级GUI提供64色。支持外部非内存映射闪存的也是新增功能,可以在紧张的系统资源预算内构建基本用户界面。 TouchGFX Designer更新包括在功能强大的可自定义微件集内新增的小程序,例如,Scale和Rotate这两个小程序使简单的拖放式编程功能变得更强大。自定义触发器和操作可以减少复杂功能创建对编程的依赖度,新的“图像”选项卡让用户可以快速配置单个属性,例如,图像格式、抖动算法和布局旋转。其它性能改进的地方包括加快自动代码生成和减少加载时间,以及新的好用的文本移动功能,例如,前进和后退。

    时间:2019-11-04 关键词: 微控制器 STM32 意法半导体 嵌入式开发

  • 英特尔和AMD最大的云威胁可能是X86指令集

      现如今,全球据统计超过90%的云基础设施即服务(IaaS)实例类型是基于Intel Xeon处理器。那么,AMD的EPYC处理器会从英特尔手中夺走大量的云市场份额吗?还是会有其他的服务器处理器给AMD和英特尔在云市场带来实质性的竞争?     2005年前后,英特尔和AMD占领了服务器处理器市场。这发生在AMD将64位指令引入x86指令集及其Opteron处理器架构之后。随后英特尔在其核心处理器架构和Xeon产品中加入了AMD 64(现在是x86-64)指令。自那之后,AMD在2008-2018年的时间内失去了大部分服务器处理器市场份额。 AMD和Intel是目前唯一交叉授权使用彼此关键的x86-64专利的服务器处理器供应商。要构建一个现代的x86-64服务器处理器,AMD和Intel的专利都是必须的。 就在几年前,Arm认为它将在x86指令集上获得可观的市场份额。Arm的商业模式是将其Aarch64指令集授权给公司,然后这些公司再设计自己的服务器处理器。目前获得授权的Arm服务器处理器包括安培的eMAG、AWS的gravity on、华为鲲鹏和Marvell的ThunderX。 然而,AMD推出的基于EPYC芯片的x86设计让Arm及其授权商措手不及。显然,除了Arm,企业和云数据中心市场都低估了AMD的创新能力。 与此同时,加州大学伯克利分校的一群研究人员创建了RISC-V开源指令集,并由RISC-V基金会将其商业化。许多现有的和潜在的Arm服务器处理器设计人员正在评估基于RISC-V处理器的潜力。其中涵盖了一些如阿里巴巴集团和谷歌等大型IaaS云,以及一些目前不从事服务器处理器设计业务的芯片公司,如NVIDIA。 为了获得IaaS市场的份额,就像AMD和Arm都在尝试的那样,RISC-V必须同时展示企业级的质量和云工作负载性能价值。但RISC-V仍处于开发的早期阶段,在许多年内都不会成为云数据中心部署的成熟竞争者。 IBM最近开源其Power系列处理器的指令集架构。IBM的POWER9是一个企业级的服务器处理器。IBM在启动OpenPOWER基金会方面做得很好,它为POWER9创建了一个云服务器供应链生态系统。在过去的几年里,谷歌已经在各种活动中展示了基于openpower的POWER9。 而从商业角度出发,因为IBM不仅仅只是开源了POWER架构,同时还提供了一个平台,能让众多的团体可以在硬件、软件及调校工作上进行紧密合作。在过去几年,芯片设计和制造服务,已经成为IBM芯片部门的主要突破点之一。 看来我们还得在等一段时间,看看谷歌云是否将POWER9部署到它的公共IaaS中。如果是这样,还有其他人会效仿吗?     虽然开源的RISC-V和POWER指令集看起来像通配符,但最终的通配符可能是其他x86-64服务器处理器设计。创建一个可行的x86服务器处理器所需的许多专利要么已经过期,要么即将过期。AMD设计的AMD 64和Opteron处理器,距今已有20年了!英特尔的奔腾4和SSE指令集开始于1998年,并在2000年底引入市场。 AMD在2003年春季推出了Opteron处理器架构,采用的是Intel的Pentium 4 32位指令集、AMD 64位指令集扩展和Intel的SSE2多媒体指令集扩展。这一即将到期的知识产权组合将使新的市场进入者能够绕过Arm、RISC-V和POWER指令集面临的软件生态系统挑战。(专利过期是基于专利申请的日期,通常是在产品发布之前很久。) 对于任何处理器指令集来说,验证都是软件生态系统增长的最大驱动力。所有声称与指令集兼容的处理器,从操作框架和应用程序开发的角度来看,实际上都必须是兼容的。AMD和Intel有着令人印象深刻的x86-64验证套件,但这主要是为了解决在数据中心领域30年来遗留的企业操作系统和应用程序兼容性问题。云部署可能指定一个更轻量级的验证套件,这就降低了新加入的x86-64服务器处理器的门槛。 虽然现在还没有公开的迹象表明公司正在设计新的基于x86-64的处理器内核,但是设计和验证一个新的服务器处理器内核架构大约需要三到四年的时间。这意味着无论是基于x86-64、Arm Aarch64、POWER9还是RISC-V,我们都应该着手开发2022-ish服务器处理器产品。 对于非x86-64指令集,构建和维护具有竞争力的软件开发和操作框架需要大量的资金。因此,追随AMD的脚步似乎是个不错的策略,但它在x86-64软件兼容性方面已经足够满足一些主要的云提供商了。

    时间:2019-11-04 关键词: 英特尔 AMD x86指令集 嵌入式开发

  • 三星迫于日本的封锁,有望购买中国的半导体材料

    据11月2日消息,由于日本对韩国的封锁,其主要管制对象主要包括氟聚酰亚胺、光刻胶及蚀刻气体(氟化氢)这 3 类半导体关键材料,而韩国国内正积极寻求日本氟化氢替代方案。三星电子与 SK 海力士等半导体公司紧急派遣采购小组以寻找氟化氢厂商。除了海外企业外,也努力寻求本土企业以实现供应国家多元化。 日本采取出口限制的氟化氢大体可分为液体氟化氢和气体氟化氢两种。氟化氢可以去除半导体晶圆氧化膜以减少 chip 不良。液体氟化氢由日本的森田和 Stella 占据大部分市占率,而气体由日本昭和電工占据大部分市场。若日本限制时,韩国半导体制程将会亮起红灯。三星电子和 SK 海力士在过去一个月时间里,从最高领导层到采购职员都忙碌于在全球各地寻找其库存。截至目前来看,中国大陆和台湾为替代优选方案。据传,SK 海力士在和中国凯圣氟化学接触以协商供应案,而三星电子则在测试中国滨化集团的产品。两家企业皆为中国最知名的氟化氢企业。 三星电子为供应多元化也曾接触过国际化学企业 B 公司,但最终因条件不符导致中断协商。韩国材料业界人士表示:中华区企业的纯度并非为可替代日本 Stella 或森田的程度,应该需要先进行紧急采购后逐步进行调节。而也有相关人士认为:两家公司连供应 TSMC 的小供应量企业都不放过,以筹集氟化氢。除了中华区的供应外,两家公司也正在寻求韩国本土的替代方案。液体氟化氢的缺口部分将会有韩国 Soulbrain 弥补,位于忠南的新工厂计划于 9 月启动。据业界人士正式 Soulbrain 既有供应经验,而新设的工厂产能规模也是相当。 气体氟化氢的韩国本土替代方案则被传由 SK Materials 供应。公司目标年内供应 SK 海力士样品。三星电子也计划与本土气体制造商 F 公司和 M 公司合作进行测试。但关键还是在寻找氟化氢的完美替代方案之前可以撑多长时间。日本将出口审查时间定为 90 天,意味着至少要有足够库存撑到 9 月份,并在这期间迅速提升技术力。因半导体是一种精细制程,必须要慎重选择以避免良率影响。也有业界推测假设测试品结果满意的前提下,也依然需要至少 2~3 个月时间才能应用到制程中。而韩国认为选择中华区的替代方案也并非是完全可以放心的方案。若与中国厂商合作时,相当于是变相地扶持中国半导体材料企业,最终会使中国半导体厂商成为最大受益者。那么对此您怎么看呢?

    时间:2019-11-02 关键词: 半导体 氟化氢 嵌入式开发

  • 苹果在AR眼睛领域会步谷歌的后尘吗?

    日前,苹果发布最新消息称可以将AR眼睛转换成VR 模式。简单说,就是使用具有不透明度的光致变色镜片,像智能窗户一样获得不同的进光度。 按照苹果的描述,镜片上有一层特殊材料,它可以利用紫外线调节镜片透明度。20 年前,太阳镜开始流行,它用到的原理与苹果专利有点类似,当我们戴着太阳镜出门时,它自动变成深色,如果进入室内,它会变得更透明。 苹果 AR 眼镜可以有选择将现实世界的部分光线调暗,镜片不一定非要全部变暗。微小的镜子引导紫外线直接进入镜片的单个像素,当显示屏生成的数字内容叠加到现实场景之上时,镜片可以调节亮度,甚至完全阻挡外部光线,增强对比度。 当前的 AR 眼镜通常都停留在单一级别的透镜透明度上,同时提供真实和数字元素的“混合”视图。假设苹果的系统具有专利所提供的功能,那么这些镜头可能会变得部分不透明,从而增强数字对象的亮度,或者可能变得完全不透明,类似于 VR 眼镜。 光致变色镜片是否出现在 Apple 的 AR 眼镜中还有待观察。该概念考虑了使用像素大小的微镜甚至可能使用加热元件,这可能会提高头显的成本,尺寸和电子复杂性,就像使用视网膜投影仪而不是基本屏幕。另一方面,实现此功能可以使眼镜在更多条件下可用。

    时间:2019-11-02 关键词: 苹果 谷歌 ar 嵌入式开发

  • CCWDM是什么?它该如何选择?

    WDM是将两种或多种不同波长的光载波信号(携带各种信息)在发送端经复用器(亦称合波器,Multiplexer)汇合在一起,并耦合到光线路的同一根光纤中进行传输的技术;在接收端,经解复用器(亦称分波器或称去复用器,Demultiplexer)将各种波长的光载波分离,然后由光接收机作进一步处理以恢复原信号。这种在同一根光纤中同时传输两个或众多不同波长光信号的技术,称为波分复用。 WDM是如何工作的? 波分复用(WDM)是指将多个不同波长的信号耦合在一条光纤上同时传输。它通常有合波和分波。合波器 MUX 的主要作用是在发送端将多个信号波长合在一根光纤中传输。分波器 DEMUX 的主要作用是在接收端将一根光纤中传输的多个波长信号分离出来。波分复用的主要目的是增加光纤的可用带宽。因此,波分复用系统被电信公司广泛采用,可在不需要铺设更多光纤的情况下通过 WDM 来扩容。 如何选择:CWDM, DWDM ? CWDM(Coarse Wavelength Division Multiplexer)是稀疏波分复用器,也称粗波分复用器。DWDM(Dense Wavelength Division Multiplexer)是密集波分复用器。 CWDM 和 DWDM 有个比较大的区别在两者的信道间隔不同。信道间隔(channel spacing)是指两个相邻信道的标称载频的差值,可以用来防止信道间干扰。CWDM 的信道之间的波长间隔为 20nm,而 DWDM 的信道间隔为 1.6/0.8/0.4 nm(200GHz/100 GHz/50 GHz),远远小于 CWDM。 信道间隔的不同也是导致 CWDM 和 DWDM 可承载的带宽和容量的不同。 DWDM 模块通过使用紧密间隔的波长在同一根光纤上可承载更多的信号来进一步提高系统带宽和容量。 CWDM 系统的最大优势在于成本低,器件成本主要表现在滤波器和激光器。20nm 的宽波长间隔同样给 CWDM 带来了对激光器的技术指标要求低、光复用器/解复用器的结构简化的优势。结构简化,成品率提高,故成本下降。DWDM 的成本增加主要是由于激光二极管的高成本以及用于保持波长稳定性的冷却激光技术。

    时间:2019-10-22 关键词: 光纤 ccwdm 嵌入式开发

  • 运用Python和PyQT开发嵌入式ARM的界面

    Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发 1). 简介 随着Python在互联网人工智能领域的流行,大家也慢慢感受到Python开发的便利,本文就基于嵌入式ARM平台,介绍使用Python配合PyQT5模块来开发图形化应用程序。 本文所演示的ARM平台来自于Toradex 基于NXP iMX6 ARM处理器的Apalis iMX6 ARM嵌入式平台。 2. 准备 a). Apalis iMX6Q ARM核心版配合Apalis Evaluation Board载板,连接调试串口UART1(载板X29)到开发主机方便调试。更多关于Apalis iMX6配合Apalis Evaluation Board载板的说明请参考Datasheet和开发上手指南。 b). Apalis iMX6Q 默认的Linux BSP是不包含Python,QT等支持的,需要重新编译。 ./ 基于Toradex Linux BSP release V2.8 ./ 参考这里搭建Openembedded 编译环境,然后适配下面patch,用于使本文测试需要的 libsoc适配 Python3。 https://github.com/simonqin09/libsoc-examples/blob/master/python/0005-libsoc-python3-support.patch ./ 修改 build/conf/local.conf 文件,增加需要的组件 -------------------------- #IMAGE_INSTALL_append = " python3 python3-pip python3-libsoc python3-pyqt5 rng-tools " -------------------------- ./ 适配下面patch,在标准image bb文件中增加QT5的支持 https://github.com/simonqin09/libsoc-examples/blob/master/python/0003-angstrom-qt5-lxde-image.patch ./ 重新编译image -------------------------- $ bitbake -k angstrom-qt5-lxde-image -------------------------- ./ 新生成的image位于 deploy/images/apalis-imx6/ 目录,参考这里的说明更新到Apalis iMX6模块上面 3). Python GPIO中断测试程序 a). 首先我们先不包含图形界面,单独通过Python来完成简单的GPIO中断测试程序,本程序通过调用 libsoc 来完成GPIO控制,关于libsoc的使用和说明请参考这里。 b). Apalis Evaluation Board载板硬件连接配置如下,X4 GPIO05(MXM3_11)对应系统中的GPIO号码是170,作为按键输入使用;X4 GPIO06(MXM3_13)对应系统中的GPIO号码是169,作为输出驱动LED使用。 X4 GPIO05 <-> X34 SW5 X4 GPIO06 <-> X34 LED1 c). 源代码请参考如下,分别实现了阻塞模式和非阻塞模式中断相应,实现功能就是按键交替点亮和关闭LED灯。 ./ 阻塞模式 – https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_block.py // main 函数作为主函数,实现打开GPIOs,同时设定初始化状态为高电平输出;test_interrupt_handler函数实现中断相应,采用 gpio_in.wait_for_interrupt 为阻塞式中断,捕获中断才会继续进行,捕获中断后做了简单的防误触处理。 ./ 非阻塞模式 – https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_nonblock.py // main 函数作为主函数,实现打开GPIOs,同时设定初始化状态为高电平输出;另外,在main函数里面采用gpio_in.start_interrupt_handler来使能中断相应,为非阻塞式;在main函数最后通过while来接收键盘输入实现退出应用;gpio_in.wait_for_interrupt依然作为中断处理函数相应中断并驱动LED状态改变。 d). 将Python代码直接复制到Apalis iMX6上面测试运行结果如下: ./ 阻塞模式下,最后是通过Ctrl-C强制退出程序 ----------------------- root@apalis-imx6:~# ./gpiotest_block.py The LED initial status is ON The LED turns OFF interrupt times is 1 The LED turns ON interrupt times is 2 ^Clibsoc-gpio-debug: Interrupted system call Traceback (most recent call last): File "./gpiotest_block.py", line 54, in main(gpio_input_id, gpio_output_id) File "./gpiotest_block.py", line 45, in main test_interrupt_handler(gpio_in, gpio_out) File "./gpiotest_block.py", line 12, in test_interrupt_handler gpio_in.wait_for_interrupt(-1) File "/usr/lib/python3.5/site-packages/libsoc/gpio.py", line 118, in wait_for_interrupt if api.libsoc_gpio_wait_interrupt(self._gpio, timeout) != 0: KeyboardInterrupt ----------------------- ./ 非阻塞模式下 ----------------------- root@apalis-imx6:~# ./gpiotest_nonblock.py The LED initial status is ON please enter 'Q' to quit The LED turns OFF The LED turns ON The LED turns OFF Q Do you really want to quit? yes or no yes root@apalis-imx6:~# ----------------------- 4). 使用PyQt5实现图形化界面GPIO中断程序 a). 硬件配置和连接和上面的测试场景一致。 b). 为了方便开发PyQt5界面,首先通过Qtcreator创建如下QWidget项目UI界面 // LED Status 右边的 QFrame 方框以及QLable用于显示LED当前的状态 // ‘Turn ON’和’Turn OFF’ 两个PushButton用于通过界面控制LED状态,’Exit’ PushButton用于退出程序 ./ 最终的UI源代码参考如下,将对应的mainwindow.ui文件复制到Apalis iMX6 Python应用相同路径下 https://github.com/simonqin09/libsoc-examples/blob/master/python/mainwindow.ui c). 程序源代码参考如下: https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_pyqt5.py 说明如下: ./ class ApplicationWindow 用于实现Qt5界面以及相关按键操作: // 首先通过 loadUi 函数来加载之前制作好的UI文件 mainwindow.ui,然后初始化界面显示,连接各个按键对应的处理程序 // 最后开启一个新的Qthread线程self.thread,用于处理外部GPIO按键中断相应,连接新线程反馈信号的处理程序,最后启动新线程 // LedStatusChange 函数为处理新线程反馈回来的LED状态变化信号而同步改变界面显示状态的函数 // Button_On_clicked 和 Button_Off_clicked 函数用于根据界面按键的点击来对应改变LED GPIO输出以及界面显示的函数 // Button_Exit_clicked 和 closeEvent 函数用于处理退出程序包括子线程的退出等相关的函数 ./ class gpioInterrupt 为用于处理GPIO中断同时对于改变LED GPIO输出以及将LED状态变化反馈给界面主程序 // 首先定义反馈信号,并初始化所需要使用的GPIO引脚 // run 函数部分基本就是上面第3章节的阻塞模式Python应用的代码,这里就不做赘述了 d). 测试运行结果如下: ----------------------- root@apalis-imx6:~# ./gpiotest_pyqt5.py The LED initial status is ON set LOW set HIGH The LED turns OFF button clicked for setting LOW The LED turns ON button clicked for setting HIGH root@apalis-imx6:~# ----------------------- 5). 总结 如上述示例,使用Python和PyQt5非常方便了创建一个嵌入式界面应用程序示例,相对于传统C语言开机要配置交叉编译环境,整个流程更加快捷方便,同时在实现比较简单的控制的时候其运行效率也是可以接受的,另外Python还可以集成大量的组件方便开发,就更加简化了比如设计机器视觉、人工智能等领域的嵌入式应用开发流程。

    时间:2019-10-22 关键词: ARM 嵌入式 python pyqt 嵌入式开发

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站