计算机指令

单片机的组成、工作原理、分类、特点以及发展趋势

岁酱吖の 提交于 2019-12-07 00:47:53
芯片在没有开发前,单片机只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微型计算机控制系统,它与个人电脑(PC机)有着本质的区别,单片机的应用属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。 不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。诚然

单片机的组成、工作原理、分类、特点以及发展趋势

被刻印的时光 ゝ 提交于 2019-12-06 16:15:39
芯片在没有开发前,单片机只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微型计算机控制系统,它与个人电脑(PC机)有着本质的区别,单片机的应用属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使该芯片具备特定的功能。 不同的单片机有着不同的硬件特征和软件特征,即它们的技术特征均不尽相同,硬件特征取决于单片机芯片的内部结构,用户要使用某种单片机,必须了解该型产品是否满足需要的功能和应用系统所要求的特性指标。这里的技术特征包括功能特性、控制特性和电气特性等等,这些信息需要从生产厂商的技术手册中得到。软件特征是指指令系统特性和开发支持环境,指令特性即我们熟悉的单片机的寻址方式,数据处理和逻辑处理方式,输入输出特性及对电源的要求等等。开发支持的环境包括指令的兼容及可移植性,支持软件(包含可支持开发应用程序的软件资源)及硬件资源。要利用某型号单片机开发自己的应用系统,掌握其结构特征和技术特征是必须的。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。诚然

细说JVM内存模型

与世无争的帅哥 提交于 2019-12-06 16:13:35
细说JVM内存模型 前言 在正式学习 JVM 内存模型之前,先注意以下几个是问题: JVM 内存模型与 JAVA 内存模型不是同一个概念。JVM 内存模型是从运行时数据区的结构的角度描述的概念;而 JAVA 内存模型是从主内存和线程私有内存角度的描述。从以下两张图可以看出: ​ JAVA内存模型 ​ JVM内存模型 Java虚拟机总共由三大模块组成: 类加载器子系统 运行时数据区执行引擎 本篇我们介绍第二大模块——运行时数据区(JVM内存模型)。 其实虚拟机的这些模块并不是独立的,都是相互联系的。java 文件编译为 class 文件,通过类加载子系统加载,信息再到 JVM 托管的内存中(部分操作会与本地内存交互)的流转,再到垃圾回收等等,都是一系列的操作。 本系列的博客为了更加清晰的描述清楚功能和原理,将其分为几个章节写作。 概览 运行时数据区分为几大模块(如上图所示): 线程共享区: JAVA堆 方法区 线程私有区: JAVA栈 本地方法栈 程序计数器 本文中,我们将从以下几个方法面来分析各个区域: 功能 存储的内容 是否有内存溢出和内存泄露 是否进行垃圾回收 对应的垃圾回收算法 垃圾回收流程 性能调优 线程私有区 程序计数器 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器

介绍一下什么是“服务器”

浪子不回头ぞ 提交于 2019-12-06 10:58:18
介绍一下什么是“服务器” 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。 什么是服务器 服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。 也可以这样讲,服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。 相对于普通PC来说,服务器在稳定性、安全性、性能等方面都要求更高,因此CPU、芯片组、内存、磁盘系统、网络等硬件和普通计算机有所不同,在质量与处理器数据性能上更出色。 服务器和电脑功能都是一样的,我们也可以讲 服务器称之为电脑 ,只是服务器对稳定性与安全性以及处理器数据能力有更高要求。 服务器作用比较广,网络游戏、网站、部分软件都是需要存到服务器的,还有一些企业会配服务器

全面理解Java内存模型

不羁岁月 提交于 2019-12-06 10:44:53
------------恢复内容开始------------ 1. java内存模型即java Memory Model,简称JMM.JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 2.并发编程有两个关键问题: 线程之间的通信和同步 。 3.线程之间的 通信 机制有两种: 共享内存和消息传递 。 1)在 共享内存 的并发模型里,线程之间共享程序的公共状态,线程之间通过写读内存中的公共状态来 隐式 进行通信,典型的共享内存通信方式就是通过共享对象进行通信。 2)在 消息传递 的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来 显式 进行通信,在Java中典型的消息传递方式是wait()和notify() 4.线程之间的 同步 是指程序用于控制不同线程之间操作发生相对顺序的机制。 1)在 共享内存 并发模型里,同步是 显式 进行的。必须显式指定某个方法或某段代码需要在线程之间互斥执行。 2)在 消息传递 的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是 隐式 进行的。 5.Java的并发采用的是 共享内存模型 ,即Java内存模型(简称JMM), JMM决定一个线程对共享变量的写入合适对另一个线程可见 。从抽象的角度来看, JMM定义了线程和主内存之间的抽象关系

工控安全入门(一)—— Modbus协议

岁酱吖の 提交于 2019-12-06 10:06:39
modbus基础知识 modbus协议最初是由Modicon公司在1971年推出的全球第一款真正意义上用于工业现场的总线协议,最初是为了实现串行通信,运用在串口(如RS232、RS485等)传输上的,分为ModbusRTU、Modbus ASCII两种,后来施耐德电气将该公司收购,并在1997年推出了基于TCP/IP的Modbus TCP。现在使用最多的就是Modbus TCP了,我们今天的主角也是它。 Modbus作为一种通信协议,它和我们之前介绍的Zigbee有很大不同,Zigbee有自己完整的协议栈,而Modbus是一种应用层的报文传输协议,它既可以在物理层面上选择串口进行简单的串行通信,也可以使用TCP的方式进行传输。 上图可以看到Modbus的协议栈仅仅是在传统ISO/OSI模型的基础上对数据链路层和应用层做了定义。也正是因为modbus是应用层的协议,所以它的安全漏洞并不只是它本身,TCP/IP的漏洞也可以利用在modbus上,最典型的就是18年工控比赛的题目,中间人。 modbus是一种主从协议,主设备的一方向从设备的一方下达指令,从设备的一方根据指令做出反应并回复主设备,主设备可以有多个从设备。具体来说,工作人员的计算机可认为是master,而PLC之类的具体设备就是slave了。每个设备有自己的“代号”,主设备通过“代号”来找到某一个对应的设备

JavaWeb(一):Java技术概览

試著忘記壹切 提交于 2019-12-06 07:03:52
一、Java技术体系 在早期,Java被称为Java开发工具包或JDK,是一门与平台(由一组 必需的API组成)紧密耦合的语言。 从1998年底的1.2版本开始,Java技术栈被分割为下面关键部分: Java是一门包含了严格和强类型语法的语言。 Java 2平台标准版本,被称为J2SE,指的是平台以及java.lang和java.io包中包含的类。它是构建Java应用程序的基础。 Java虚拟机或JVM是一个可运行编译后Java代码的软件虚拟机。因为被编译过的Java代码只是字节码,JVM将在运行代码之前,把字节码编译成机器码。JVM还负责管理内存,从而实现了应用程序代码的简化。 Java开发工具包或JDK。它包括了Java语言编译器、文档生成器、与本地代码协作的工具和用于调试平台类的Java源代码。 Java运行时环境或JRE曾经并且现在也仍是终端用户用于运行编译后Java应用程序的软件。它包含了JVM但不含任何JDK中的开发工具。而JDK包含了一个JRE(即jdk既包含开发工具又包含JRE)。 上述5个组件曾经都只是 规范 ,而不是实现。任何公司都可以通过规范实现Java技术栈,比如IBM有自己的JDK。开源社区则形成了OpenJDK项目,该项目提供Java栈的开源实现。 我们在Oracle网站下载的JDK,实际也是一种实现,sun公司最初就提供了Java、J2SE、JVM

「知识分享」电磁兼容EMC

大兔子大兔子 提交于 2019-12-06 05:43:27
对于部分人来说,电磁兼容性(EMC) 可能是一个新名词。不过,多年来电磁兼容性一直都很重要,实际上早在二战之前就已存在了。数十年来,有三家机构一直在推动EMC的发展:美 国军方;欧洲国际无线电干扰特别委 员会(CISPR);美国联邦通讯委员会 (F.C.C.)。 历史 EMC最初是在军事环境里成为一个问题,尤其是在必须成功操作诸多相 互之间距离很近的电子设备的大型船舶上。在这样的环境里,通信、导航和数据处理电子设备都需要在很强的 射频(RF)场中同步运行。这些射频场 由双向通讯设备、雷达发射器和微处 理器控制设备产生。另外,在这个“ 复杂”的环境中还要加上军舰条例或 舰载的爆炸物和飞机燃料。在这样的 环境里,很显然,每种设备都应当与其所在环境具有电磁兼容性,不能表 现为在此环境中无法使用或不安全。此外,此环境中增加的每种设备均不 能没有必要地或者无目的性地发出起 不到任何作用的杂散辐射。从前面可 以看出,EMC的两个主要起源因素 是发射和抗扰。 由于电子设备在全球非军事领域的广泛应用,EMC要以平民化的设置进行 维护,这一点也变得越来越重要。居 住和商业环境中可能包含很多由微处 理器控制的应用,例如煤气灶、磁带录像机、电视机、面包机、个人计算机等等。利用微处理器技术的所有 电子设备都会产生射频。例如,一台 100 MHz的计算机有一个通过其程序 在微处理器中运行的电子时钟。在这

第31课 std::atomic原子变量

馋奶兔 提交于 2019-12-06 05:41:19
一. std::atomic_flag和std::atomic (一)std::atomic_flag   1. std::atomic_flag 是一个bool类型的原子变量,它有两个状态set和clear,对应着flag为true和false。   2. std::atomic_flag使用前必须被 ATOMIC_FLAG_INIT 初始化,此时的flag为clear状态,相当于静态初始化。   3. 三个原子化操作   (1) test_and_set() :检查当前flag是否被设置。 若己设置直接返回true,若没设置则将flag置为true ,并返回false 。   (2) clear() ;清除flag标志,即flag=false。   (3)析构函数   4. 和所有atomic类型一样, std::atomic_flag不支持拷贝和赋值等操作 。因为赋值和拷贝调用了两个对象,从第一个对象中读值,然后再写入另一个。对于两个独立的对象,这里就有两个独立的操作,合并这两个操作必定不是原子的。   5. std::atomic_flag 类型不提供is_lock_free()。 该类型是一个简单的布尔标志, 并且 在这种类型上的操作都是无锁的 。但atomic_flag的可操作性不强,导致其应用局限性,还不如std::atomic<boo>。 (二)std:

接口技术第六章——输入输出接口及数据传输控制方式总结

老子叫甜甜 提交于 2019-12-06 04:14:53
正在学习接口技术和计算机组成原理,中间有一些重叠的部分就放在一起了,至于DMA,中断之类的会放在后面讲解 6.1 接口综述 硬件接口通常称为I/O接口,把外围设备同微型计算机连接起来的电路称为外设接口电路,简称外设接口。I/O接口是CPU同外界进行信息交换的中转站 使用接口的原因 速度不匹配 外设外慢 时序不匹配 各个外部设备都有自己的定时控制电路,以自己的速度进行传输,同CPU的时序不匹配 信息格式不匹配,不同的外设存储和处理信息的格式不同 信息类型不匹配,有些是数字电路,有些是模拟电路 CPU与外设之间所传送的数据类型 数据信息 包括模拟量,数字量,开关量,可以输入也可以输出 状态信息 这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息,供CPU参考分析 控制信息 这是CPU送给I/O设备的控制命令,使相应的外部设备完成特定的操作 在8086/8088中,这三种信息的输入输出基本一致,可以分发不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入输出的数据中设置特征位 接口的功能(背) 执行CPU命令 CPU将对外设的控制命令发到接口电路的命令寄存器中,以便控制外设按要求进行工作 返回外设状态 通过外设寄存器(状态口)完成,包括正常工作状态和故障状态 数据缓冲的功能 (平滑作用)接口电路中的数据寄存器(数据口)对CPU与外设设备之间的数据进行中转