![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 68
光电的一只菜鸡
个人技术交流群833459254
展开
-
PIPE接口
PIPE接口原创 2024-07-18 16:31:39 · 75 阅读 · 0 评论 -
关于MIPI协议——物理层D-PHY总结
我们发现它的0位,等价于用LP-01=>LP00表示,它的1位等价于用LP-10=>LP00表示,你也可以认为0位和1位的Dp和Dn状态是互相交错的。接下来我们再看看Escape Mode指令,首先,这条指令是用来做什么的呢,它是用来给MIPI提供一些额外功能处理能力的LP指令,且值得注意的一点是,与前面不同,它是一条基于空间独热(Space-One-Hot) 位编码的异步指令,由于是异步指令,因此Data lane在操作这条指令时,并不依赖于Clk Lane。结束传输的EOT序列比较简单,也请自行读表。转载 2024-07-16 16:44:00 · 26 阅读 · 0 评论 -
CSI-2介绍
CSI-2(camera serial interface 2)由MIPI(Mobile Industry Processor Interface)联盟下Camera工作组指定的接口标准,主要用于定义摄像头外设与主机控制器之间的接口,旨在确定摄像头与主机控制器在移动应用中的标准。CSI2主要有三个版本,1.0,2.0,3.0,这里简单罗列下。简单说明下,CSI包含CSI-2以及CSI-3,这两个实现上的最大区别在于物理层不同,CSI3要求用的是MPHY,CSI2用的是CPHY,DPHY,这里不展开阐述。原创 2024-07-16 16:21:38 · 670 阅读 · 0 评论 -
MQTT协议
链接:https://www.runoob.com/w3cnote/mqtt-intro.html原创 2021-03-21 11:30:31 · 149 阅读 · 0 评论 -
电子设计技巧(八)——晶振参数中的负载电容CL
负载电容CL,英文为Load Capacitance,为晶振一个重要电气参数。一般情况下,对功耗不太敏感的电子设备PCBA上,常见的晶振负载电容为 15PF、18PF、20PF。而诸如腕表、手机、蓝牙耳机等对低功耗明显有较高需求的电子数码产品,常采用晶振为负载较小的晶振,比如6PF、7PF、9PF、10PF、12PF。 在生产制造中,晶振的负载电容值的大小已经根据设计需求被固定,在后续电路应用中无法更改或调整。一般情况下,在无源晶振的电路使用中,我们需要根据晶振的负载电容来调整外接电容值的大小,以便原创 2021-05-17 22:36:10 · 5205 阅读 · 0 评论 -
汇编语言(十)——条件判断指令
首先了解按位指令,这里使用的技术也可以用于操作硬件设备控制位,实现通信协议以及加密数据,操作 说明 AND 源操作数和目的操作数进行逻辑与操作 OR 源操作数和目的操作数进行逻辑或操作 XOR 源操作数和目的操作数进行逻辑异或操作 NOT 对目标操作数进行逻辑非操作 TEST 源操作数和目的操作数进行逻辑与操作,并适当地设置 CPU 标志位 布尔指令影响零标志位、进位标志位、符号标志位、溢出标志位和奇偶标志位。下面简单回顾一下这些标志位的.原创 2021-02-07 13:27:50 · 13324 阅读 · 0 评论 -
汇编语言(九)——链接库
0.链接器如果编程者花时间的话,就可以用汇编语言编写岀详细的输入输岀代码。就好比自己从头开始搭建汽车,然后可以驾车出行一样。这个工作很有趣但也很耗时。接下来我们来了解一下什么是链接库。链接库是一种文件,包含了已经汇编为机器代码的过程(子程序)。链接库开始时是一个或多个源文件,这些文件再被汇编为目标文件。目标文件插入到一个特殊格式文件,该文件由链接器工具识别。链接器工具把一个程序的目标文件与一个或多个目标文件以及链接库组合在一起。比如,下述命令就将 hello.obj 与 irvine32.lib 和原创 2021-02-07 13:06:14 · 676 阅读 · 0 评论 -
汇编语言(八)——过程
0.什么是过程如果大家已经学过了高级编程语言,那么就会知道将程序分割为子过程(subroutine)是多么有用。一个复杂的问题常常要分解为相互独立的任务,这样才易于被理解、实现以及有效地测试。在汇编语言中,通常用术语过程(procedure)来指代子程序。在其他语言中,子程序也被称为方法或函数。就面向对象编程而言,单个类中的函数或方法大致相当于封装在一个汇编语言模块中的过程和数据集合。汇编语言出现的时间远早于面向对象编程,因此它不具备面向对象编程中的形式化结构。汇编程序员必须在程序中实现自己的形式化结构原创 2021-02-07 12:58:32 · 1452 阅读 · 0 评论 -
汇编语言(七)——堆栈
0.什么是堆栈?堆栈数据结构(stack data structure)的原理与盘子堆栈相同:新值添加到栈顶,删除值也在栈顶移除。堆栈也被称为 LIFO 结构(后进先出,Last-In First-Out),,其原因是,最后进入堆栈的值也是第一个出堆栈的值。(数据结构就有讲)1.堆栈运行原理运行时堆栈是内存数组,CPU 用 ESP(扩展堆栈指针,extended stack pointer)寄存器对其进行直接管理,该寄存器被称为堆栈指针寄存器(stack pointer register)。32原创 2021-02-07 12:19:01 · 3349 阅读 · 0 评论 -
汇编语言(六)——操作数
0.前言x86 的指令格式为:[label:] mnemonic [operands][ ;comment ]指令包含的操作数个数可以是:0 个,1 个,2 个或 3 个。这里,为了清晰起见,省略掉标号和注释:mnemonicmnemonic [destination]mnemonic [destination] , [source]mnemonic [destination] , [source-1] , [source-2]操作数有 3 种基本类型: ...原创 2021-02-07 11:54:14 · 11263 阅读 · 0 评论 -
汇编语言(五)——64位编程
1.简单了解AMD 和 Intel 64 位处理器的出现增加了对 64 位编程的兴趣。MASM 支持 64 位代码,所有的 Visual Studio 2012 版本(最终版、高级版和专业版)以及桌面系统的 Visual Studio 2012 Express 都会同步安装 64 位版本的汇编器。与32 位版本不同之处如下所示:(1)2 位 AddTwoSum 程序中使用了下列三行代码,而 64 位版本中则没有:.386 .model flat,stdcall .stack 4096.原创 2021-02-06 22:44:15 · 1219 阅读 · 0 评论 -
汇编语言(四)——编程语法入门
0.第一个汇编程序汇编程序几乎提供了全部信息的语言。程序员可以看到正在发生的所有事情,甚至包括 CPU 中的寄存器和标志!但是,在拥有这种能力的同时,程序员必须负责处理数据表示的细节和指令的格式。程序员工作在一个具有大量详细信息的层次。现在以一个简单的汇编语言程序为例,来了解其工作过程。下面这个程序是执行两个数相加,并将结果保存在寄存器中的代码:(没运行起来).data ;此为数据区sum DWORD 0 ...原创 2021-02-06 22:36:07 · 1912 阅读 · 0 评论 -
汇编语言(三)——X86处理器架构
为了深入学习计算机,我们需要了解与 x86 汇编语言相关的底层硬件知识。以及从程序员角度看到的主机系统。其中包括了所有的 Intel IA-32 和 Intel 64 处理器和高级微设备 (AMD) 处理器。而且还应该详细的了解指令执行时处理器内部发生的一些基本操作,以及操作系统如何加载和执行程序,并通过样本主板布局来了解 x86 系统的硬件环境,最后还应该了解在应用程序与操作系统之间,层次化输入...原创 2020-02-02 11:58:58 · 2503 阅读 · 0 评论 -
汇编语言(二)——字符表示
如果计算机只存储二进制数据,那么它如何表示字符呢?计算机使用的是字符集,将字符映射为整数。早期,字符集只用 8 位表示。即使是现在,在字符模式(如 MS-DOS)下运行时,IBM 兼容微机使用的还是 ASCII(读为“askey”)字符集。ASCII 是美国标准信息交换码(AmeTican Standard Code for Information Interchange)的首字母缩写。在 ASC...原创 2020-01-30 13:32:04 · 2046 阅读 · 0 评论 -
汇编语言(一)——虚拟机
虚拟机概念(virtual machine machine)是一种说明计算机硬件和软件关系的有效方法。要说明这个概念,先从计算机的最基本功能开始,即执行程序。计算机通常可以执行用其原生机器语言编写的程序。这种语言中的每一条指令都简单到可以用相对少量的电子电路来执行。为了简便,称这种语言为 L0。由于 L0 极其详细,并且只由数字组成,因此,程序员用其编写程序就非常困难。如果能够构造一种较易使用的新...原创 2020-01-30 13:25:05 · 1492 阅读 · 0 评论 -
汇编语言(零)——基本概念
0.相关背景这里讨论的是与运行 Microsoft Windows 32 位和 64 位系统的 Intel 和 AMD 处理器相兼容的微处理器编程。教程中使用了 Microsoft 宏汇编器(称为 MASM)的最新版本。Microsoft Visual Studio 的大多数版本(专业版,旗舰版,精简版……)都包含 MASM。在运行 Microsoft Windows 的 x86 系统中,其他...原创 2020-01-30 11:52:12 · 955 阅读 · 0 评论 -
运算放大电路(比例运算电路)
0.反向比例运算电路这是典型的并联反馈负反馈电路,输入电压U1通过电阻R作用于反向输入端,故输出电压与输入电压反向,同相输入端通过补偿电阻R'接地,其值为U1=0时反相输入端的等效电阻,即各支路电阻的并联,因此R'=R//Rf。通过Rf引入负反馈,因此Un=Up=0,即“虚地”,Ip=In。对于节点N,有Ir=If,则对于...原创 2021-03-23 20:55:52 · 22544 阅读 · 1 评论 -
微机原理(一)——计算机系统的结构组成与工作原理(第2章)
1.相关知识(1)计算机系统的层次模型a)应用开发:应用软件 用户接口 系统软件:操作系统、编译器、数据库管理系统、Web浏览器、设备驱动、中断服务程序 系统调用接口 硬件系统:异常机构处理、指令系统、CPU、存储器、I/O及通信子系统 b)软硬件实现:系统分析层(数学模型、算法) 用户程序层(语法编程) 语言处理层(解释、编译) 操作系统层 指令系统层(机器语言指令) 微体系结构层(微程序)(硬核级) 数字逻辑层(硬连逻辑)(硬核级) ...原创 2021-03-21 22:26:16 · 794 阅读 · 0 评论 -
微机原理(零)——概述(第1章)
0.参考书目《微处理器系统结构与嵌入式系统设计》 (第2版)李广军这是博主电科考研复试(微机原理)笔记!目录1.绪论(略看)(1)IT行业四大规律(2)发展概述(3)普适计算与泛在通信(4)物联网(5)Soc(6)CMP(7)流处理器(8)PIM(9)嵌入式系统2.重要课后题及答案1.绪论(略看)(1)IT行业四大规律摩尔定律:处理器内晶体管集成度每18个月翻一番;贝尔定律:如果保持计算能力不变,微处理器的价格每18个月减少一半;(归于原创 2021-03-19 23:12:22 · 407 阅读 · 0 评论 -
进程与线程
这是一篇7年前的旧文,但绝对值得一读。尤其是刚接触计算机不久的新手,通过此文可以对进程、线程有个相对直观的认知。但科普文重在通俗易懂,更进一步的学习还需查阅相关的资料,对技术的理解不可仅停留在直观印象而已。进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。计算机的核心...原创 2020-03-24 16:53:09 · 242 阅读 · 0 评论 -
电子设计技巧(七)——PCB工艺
https://mp.weixin.qq.com/s/xUBRJi9qE_KY5oTR0t5QEw原创 2020-01-15 16:44:38 · 169 阅读 · 0 评论 -
电子设计技巧(六)——传输线
相信大家时不时的都会听到传输线(Transmission Line,TL)的概念,在信号完整性分析中占据重要地位。这一期我们就浅显的学习下其基本概念和特性。电路系统是器件(Device)和连线(Interconnect)的整体。在电路图中经常使用的是理想连线。在集成电路中的制造中,连线的实现可能会用到多晶硅,铝线或者铜线。封装过程中的bonding wire可能会用到铝线或者金线。板级pcb走...原创 2019-12-28 10:22:56 · 3367 阅读 · 0 评论 -
电子设计技巧(五)——耦合与退耦,上拉与下拉
耦合与退耦耦合:指信号由第一级向第二级传递的过程,一般不加注明时往往是指交流耦合。退耦:是指对电源采取进一步的滤波措施,去除两级间信号通过电源互相干扰的影响。耦合常数是指耦合电容值与第二级输入阻抗值乘积对应的时间常数。退耦有三个目的将电源中的高频纹波去除,将多级放大器的高频信号通过电源相互串扰的通路切断。大信号工作时,电路对电源需求加大,引起电源波动,通过退耦...原创 2019-12-23 09:05:19 · 907 阅读 · 0 评论 -
电子设计技巧(四)——电路保护设计
在各类电子产品中,设置过压保护和过流保护变得越来越重要,那么电路保护的意义到底是什么,今天就来跟大家聊一聊:(1)、由于如今电路板的集成度越来越高,板子的价格也跟着水涨船高,因此我们要加强保护。(2)、半导体器件,IC的工作电压有越来越低的趋势,而电路保护的目的则是降低能耗损失,减少发热现象,延长使用寿命。(3)、车载设备,由于使用环境的条件比一般电子产品更加恶劣,汽...原创 2019-12-23 08:57:53 · 1475 阅读 · 0 评论 -
电子设计技巧(三)——电源变压设计
在本篇文章中,我将从不同方面深入介绍降压、升压和降压-升压拓扑结构。降压转换器图1是非同步降压转换器的原理图。降压转换器将其输入电压降低为较低的输出电压。当开关Q1导通时,能量转移到输出端。图1:非同步降压转换器原理图公式1计算占空比:公式2计算最大金属氧化物半导体场效应晶体管(MOSFET)应力:公式3给出了最大二极管应力:其中...原创 2019-12-23 08:56:20 · 536 阅读 · 0 评论 -
电子设计技巧(二)——滤波方法
一、限幅滤波法A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点:无法抑制那种周期性的干扰平滑度差二、中位值滤波法A、方法:连续采样N次...原创 2019-12-23 08:54:34 · 358 阅读 · 0 评论 -
Arduino之坑(四)——TCP通信
0.参考连接https://blog.csdn.net/dpjcn1990/article/details/928300871.mac地址和ip地址MAC地址是物理地址,IP地址是逻辑地址。MAC地址是不可改变的,IP地址是可以更改的。MAC地址具有唯一性,每个硬件出厂时候的MAC地址是固定的;IP地址不具备唯一性,因此,很多应用软件是围绕MAC地址开发的。二层基于MAC地址转发数据帧...原创 2019-12-19 15:57:52 · 5608 阅读 · 0 评论 -
Arduino官网
中文社区:https://www.arduino.cn/http://www.lanmisoft.com/software.php原创 2019-12-19 15:52:09 · 7323 阅读 · 0 评论 -
步进电机距离计算
第一步:确定步进电机的步距角,这个电机上会标明的.比如说,1.8度,则一个圆周360/1.8=200,也就是说电机旋转一周需要200个脉冲.第二步:确定电机驱动器设了细分细分没有,查清细分数,可以看驱动器上的拨码.比如说4细分,则承上所述,200*4=800,等于说800个脉冲电机才旋转一周.第三步:确定电机轴一周的长度或者说导程:如果是丝杠,螺距*螺纹头数=导程,如果是齿轮齿条传...原创 2019-12-16 09:57:22 · 9078 阅读 · 1 评论 -
Arduino之坑(二)——PWM
0.PWM简介及原理说明通过将一段数字信号编码为方波信号,在外部作用事物上达到拟输出效果的一种手段。实际中,使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。一般情况下,方波在输出时,代电平代表输出0V,高电平代表输出5V(或3.3V,视驱动电源而定),当要输出中间(诸如3.7V)的“等效电压”时,可以先输出5V一段时间,再输出0V一段时间,就可以了。所...原创 2019-12-09 09:42:49 · 2513 阅读 · 0 评论 -
电子设计技巧(一)——电气接口
我们知道,在电路系统的各个子模块进行数据交换时可能会存在一些问题导致信号无法正常、高质量地“流通”,例如有时电路子模块各自的工作时序有偏差(如CPU与外设)或者各自的信号类型不一致(如传感器检测光信号)等,这时我们应该考虑通过相应的接口方式来很好地处理这个问题。TTL电平接口类型基本是老生常谈的吧,从上大学学习模拟电路、数字电路开始,对于一般的电路设计,TTL电平接口基本就脱不了“干系”!它的...原创 2019-11-20 10:38:53 · 1319 阅读 · 0 评论 -
电子设计技巧(零)——零欧电阻
零欧姆电阻又称为跨接电阻器,是一种特殊用途的电阻,0欧姆电阻的并非真正的阻值为零,欧姆电阻实际是电阻值很小的电阻。电路板设计中两点不能用印刷电路连接,常在正面用跨线连接,这在普通板中经常看到,为了让自动贴片机和自动插件机正常工作,用零电阻代替跨线。零欧姆电阻的作用总结可以包括以下作用:在电路中没有任何功能,只是在PCB上为了调试方便或兼容设计等原因。可作跳线使用,避免用跳针造成的高频干...原创 2019-11-20 10:32:43 · 956 阅读 · 0 评论 -
Arduino之坑(一)——serial.println 、serial.write、Serial.print()
0.serial.println 与Serial.print()Arduino 的输出基本就用两个函数 print 和 println,区别在于后者比前者多了回车换行Serial.println(data)从串行端口输出数据,跟随一个回车(ASCII 13, 或 'r')和一个换行符(ASCII 10, 或 'n')。这个函数所取得的值与 Serial.print()一样。Serial...原创 2019-11-20 10:22:21 · 16974 阅读 · 1 评论 -
Arduino之坑(零)——digitalWrite与servo.write
0.参考链接:https://forum.arduino.cc/index.php?topic=123174.0、1.问题答案今天用digitalWrite给电调信号,发现难以带动同事的吸气泵,然后我和同事联系了客服,发现利用servo.write函数是没问题的,能够正常工作。看到老外的解释是digitalWrite() 仅仅表示打开或者关闭引脚,analogWrite()能进行告...原创 2019-11-20 10:19:20 · 6430 阅读 · 0 评论 -
如何从AD导出PDF原理图
https://jingyan.baidu.com/article/7c6fb428d4759080642c9017.html原创 2019-11-01 16:09:27 · 18335 阅读 · 0 评论 -
ubuntu linux安装
https://blog.csdn.net/xiaohua0877/article/details/78507631原创 2019-10-15 14:44:15 · 112 阅读 · 0 评论 -
三菱PLC官网网站
https://mitsubishielectric.yangben.cn/assets/2b8bba7df0b847759686566e7158dd7a原创 2019-10-15 11:52:15 · 5014 阅读 · 0 评论 -
单片机中论Task的使用结合modbus(一)——代码解读
上一篇上传了相关源代码,这一篇来解读源代码。1.初始化main函数中,初始化函数有SCH_Init_T0();与uart0_init(9600);两个初始化函数,对于SCH_Init_T0();内容:#define SCH_MAX_TASKS (4)//定义tasks的最大值为4typedef idata struct { void (code * pTask)(voi...原创 2019-10-14 09:25:17 · 622 阅读 · 0 评论 -
单片机中论Task的使用结合modbus(零)——源代码
好吧,暂时回归嵌入式了,最近搞了Arduino觉得还比较简单,不过这篇blog是讨论task的。因为调试QT的modbus与这个protues仿真的联调通过了。所以还是老老实实爬这个51单片机的程序。1.main.cpp与main.hmain.cpp:#include"include/main.h"#include"include/uart.h"#include"include/...原创 2019-10-12 11:56:46 · 543 阅读 · 0 评论