为什么还要主机编译(zip文件密码破解软件)
一、主机编译的定义及作用
1, 主机编译的定义
主机编译是指再将高级语言编写的源代码转换为机器语言的。这个中,编译器再将源代码翻译成计算机识别和执行的指令,从而实现程序主机上的运行。
2, 主机编译的作用
1,提高程序运行效率
编译后的程序直接主机上运行,无需解释执行,从而提高了程序的运行效率。
2,降低内存消耗
编译后的程序体积相对较小,有利于降低内存消耗,提高系统运行速度。
3,提高程序移植性
主机编译生成的程序不同主机上运行,提高了程序的移植性。
二、主机编译的必要性
1, 技术发展的必然选择
随着计算机技术的不断发展,主机编译技术也不断进步。从初的汇编语言到高级语言,再到如今的编译器,主机编译技术已经经历了漫长的演变。这个中,主机编译技术逐渐成为计算机系统发展的必然选择。
2, 提高编程效率
主机编译技术再将复杂的高级语言转换为高效的机器语言,使得程序员加专注于程序逻辑的设计,提高编程效率。
3, 注意系统安全
主机编译技术源代码的安全性,避免恶意代码的传播。编译后的程序运行中,其源代码已被隐藏,从而降低了系统受到攻击的风险。
4, 适应不同硬件平台
随着硬件技术的不断发展,各种新型硬件平台不断涌现。主机编译技术针对不同硬件平台进行优化,程序不同平台上良好的性能。
5, 支持多种编程语言
主机编译技术支持多种编程语言,如C、C++、Java,为程序员提供了丰富的编程选择。
主机编译技术计算机系统发展中不替代的作用。信息技术日益发展的,我们仍然关注主机编译技术的研究与发展。只有不断优化主机编译技术,才能推动计算机系统向高水平发展。
主机编译的必要性体现几个一是技术发展的必然选择;二是提高编程效率;三是注意系统安全;四是适应不同硬件平台;五是支持多种编程语言。未来的发展中,主机编译技术再将继续发挥其重要作用,为我国计算机事业的发展贡献力量。
云服务器建站,为什么还要搭建虚拟主机,跟Web环境有区别吗
虚拟主机也是web环境中搭建的。说不管你用虚拟主机还是服务器,web环境是的。
不能直接用服务器建站,先有web环境部署,然后才能建站。
虚拟主机的资源很少,自己无法安装软件,自由度很低,想要实现很多网站功能,只能用服务器。
什么是ARP
分类:电脑/网络>>反病毒
问题描述:
点吗?
:
这里没法看图片,你想看的话,到这里来130/CMS/Pub/neork/neork_protocal/1
ARP协议概述
IP数据包常以太网发送。以太网设备并不识别32位IP地址它们是以48位以太网地址传输以太网数据包的。IP驱动器把IP目的地址转换成以太网网目的地址。这两种地址存着某种静态的或算法的映射,常常查看一张表。地址协议(Addre Reolution Protocol,ARP)是用来确定这些映象的协议。
ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者再将这个地址对高速缓存,以节约不必要的ARP通信。
有一个不被信任的节点对本地网络写访问许权,那么也有某种风险。这样一台机器发布虚假的ARP报文并再将所有通信都转向它自己,然后它扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。安全的网络上, ARP映射用固件,并且自动抑制协议达到防止干扰的目的。
图1以太网上的ARP报文格式
图1是一个用作IP到以太网地址转换的ARP报文的例子。图中每一行为32位,也是4个八位组表示,以后的图中,我们也再将遵循这一方式。
硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1。协议类型字段指明了发送方提供的高层协议类型,IP为0806(16进制)。硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文任意硬件和任意协议的网络中用。操作字段用来表示这个报文的目的,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。
当发出ARP请求时,发送方填好发送方首部和发送方IP地址,还要填写目标IP地址。当目标机器收到这个ARP广播包时,响应报文中填上自己的48位主机地址。
2 ARP用举例
我们先看一下linux下的arp命令(开始arp表中的内容为空的话,先对某台主机进行一个连接,例如ping一下目标主机来产生一个arp项)
d2erver:/home/kerbero arp
Addre HWtype HWaddre Flag Mak Iface
211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0
Addre主机的IP地址
Hwtype主机的硬件类型
Hwaddre主机的硬件地址
Flag Mak记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目。
用"arp--a"命令显示主机地址与IP地址的对应表,也是机器中所保存的arp缓存信息。这个高速缓存存放了近Inter地址到硬件地址的映射记录。高速缓存中每一项的生存时间为20分钟,起始时间从被创建时开始算起。
d2erver:/home/kerbero arp-a
(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0
看到缓存中有一条211,161,17.254相对应的arp缓存条目。
d2erver:/home/kerbero tel 211,161,17.21
Trying 211,161,17.21,..
Connected to 211,161,17.21,
Ecape character i'^]'.
^].
tel>qu
conion cloed.
执行上面一条tel命令的用tcpdump进行监听
d2erver:/home/kerbero tcpdump-e dt hot 211,161,17.21
tcpdump: litening on eth0
我们再将听到很多包,我们取与我们arp协议相关的2个包
1 0.0 00:D0:F8:0A:FB:83 FF:FF:FF:FF:FF:FF arp 60
who ha 211,161,17.21 tell d2erver
2 0.002344(0.0021) 00:E0:3C:43:0D:24 00:D0:F8:0A:FB:83 arp 60
arp reply 211,161,17.21 i at 00:E0:3C:43:0D:24
第1行中,源端主机(d2erver)的硬件地址是00:D0:F8:0A:FB:83。目的端主机的硬件地址是FF:FF:FF:FF:FF:FF,这是一个以太网广播地址。电缆上的每个以太网接口都要接收这个数据帧并对它进行处理。
第1行中紧接着的一个输出字段是arp,表明帧类型字段的值是0x0806,说明此数据帧是一个ARP请求或回答。
每行中,单词后面的值60指的是以太网数据帧的长度。由于ARP请求或回答的数据帧长都是42字节(28字节的ARP数据,14字节的以太网帧头),每一帧都加入填充字符以达到以太网的小长度要求60字节。
第1行中的下一个输出字段arp who-ha表示作为ARP请求的这个数据帧中,目的I P地址是211,161,17.21的地址,发送端的I P地址是d2erver的地址。tcpdump打印出主机名对应的默认I P地址。
从第2行中看到,尽管ARP请求是广播的,ARP应答的目的地址却是211,161,17.21(00:E0:3C:43:0D:24)。ARP应答是直接送到请求端主机的,而是广播的。tcpdump打印出arp reply的字样,打印出响应者的主机ip和硬件地址。
每一行中,行号后面的数字表示tcpdump收到分组的时间(以秒为单位)。除第1行外,每行括号中还包含了与上一行的时间差异(以秒为单位)。
这个时候我们再看看机器中的arp缓存
d2erver:/home/kerbero arp-a
(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0
(211,161,17.21) at 00:E0:3C:43:0D:24 [ether] on eth0
arp高速缓存中已经增加了一条有关211,161,17.21的映射。
再看看其他的arp相关的命令
d2erver:/home/kerbero arp- 211,161,17.21 00:00:00:00:00:00
d2erver:/home/kerbero arp
Addre HWtype HWaddre Flag Mak Iface
211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0
211,161,17.21 ether 00:00:00:00:00:00 CM eth0
d2erver:/home/kerbero arp-a
(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0
(211,161,17.21) at 00:00:00:00:00:00 [ether] PERM on eth0
看到我们用arp-选项设置了211,161,17.21对应的硬件地址为00:00:00:00:00:00,而且这条映射的标志字段为CM,也是说我们手工设置的arp选项为静态arp选项,它保持不变没有超时,不像高速缓存中的条目要时间间隔后新。
想让手工设置的arp选项有超时时间的话,加上temp选项
d2erver:/home/kerbero arp- 211,161,17.21 00:00:00:00:00:00 temp
d2erver:/home/kerbero arp-a
(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0
(211,161,17.21) at 00:00:00:00:00:00 [ether] on eth0
d2erver:/home/kerbero arp
Addre HWtype HWaddre Flag Mak Iface
211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0
211,161,17.21 ether 00:00:00:00:00:00 C eth0
看到标志字段的静态arp标志"M"已经去掉了,我们手工加上的是一条动态条目。
请大家注意arp静态条目与动态条目的区别。
不同的系统中,手工设置的arp静态条目是有区别的。linux和win2000中,静态条目不因为伪造的arp响应包而改变,而动态条目改变。而win98中,手工设置的静态条目因为收到伪造的arp响应包而改变。
想删除某个arp条目(静态条目),用下面的命令
d2erver:/home/kerbero arp-d 211,161,17.21
d2erver:/home/kerbero arp-a
(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0
(211,161,17.21) at on eth0
看到211,161,17.21的arp条目已经是不完整的了。
还有一些其他的命令,参考linux下的man文档
d2erver:/home/kerbero man arp
ARP欺骗
我们先复习一下上面所讲的ARP协议的原理。实现TCP/IP协议的网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义,,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的硬件mac地址来识别。只有机器的硬件mac地址和该ip包中的硬件mac地址相同的机器才应答这个ip包,因为网络中,每一台主机都有发送ip包的时候,每台主机的内存中,都有一个 arp-->硬件mac的转换表。是动态的转换表(该arp表手工添加静态条目)。该对应表被主机时间间隔后刷新。这个时间间隔是ARP高速缓存的超时时间。
主机发送一个ip包,它要到该转换表中寻找和ip包对应的硬件mac地址,没有找到,该主机发送一个ARP广播包,于是,主机刷新自己的ARP缓存。然后发出该ip包。
了解这些常识后,现谈以太网络中如何实现ARP欺骗了,看看这样一个例子。
3,1同一网段的ARP欺骗
图2同一网段的arp欺骗
如图2所示,三台主机
A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192,168.0.2硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC:CC
一个位于主机B的入侵者想非法进入主机A,这台主机上安装有防火墙。收集资料他知道这台主机A的防火墙只对主机C有信任关系(开放23端口(tel))。而他要用tel来进入主机A,这个时候他应该如何处理呢?
我们这样考虑,入侵者让主机A相信主机B是主机C,主机A和主机C的信任关系是建立ip地址之上的。单单把主机B的ip地址改的和主机C的一样,那是不能工作的,至少不能靠地工作。你告诉以太网卡设备驱动程序,自己IP是192,168.0.3,那么这只是纯粹的竞争关系,并不能达到目标。我们先研究C这台机器我们能让这台机器暂时当掉,竞争关系解除,这个还是有实现的。机器C当掉的再将机器B的ip地址改为192,168.0.3,这样成功的23端口tel到机器A上面,而成功的绕过防火墙的限制。
上面的这种想法下面的下是没有作用的,主机A和主机C的信任关系是建立硬件地址的基础上。这个时候还用ARP欺骗的手段让主机A把自己的ARP缓存中的关于192,168.0.3映射的硬件地址改为主机B的硬件地址。
我们人为的制造一个arp_reply的响应包,发送给想要欺骗的主机,这是实现的,因为协议并没有规定接收到arp_echo后才发送响应包.这样的工具很多,我们直接用nifferpro抓一个arp响应包,然后进行修改。
你人为地制造这个包。指定ARP包中的源IP、目标IP、源MAC地址、目标MAC地址。
这样你虚假的ARP响应包来修改主机A上的动态ARP缓存达到欺骗的目的。
下面是具体的步骤
他先研究192,0.0.3这台主机,发现这台主机的漏洞。
发现的漏洞使主机C当掉,暂时停止工作。
这段时间里,入侵者把自己的ip改成192,0.0.3
他用工具发一个源ip地址为192,168.0.3源MAC地址为BB:BB:BB:BB:BB:BB的包给主机A,要求主机A新自己的arp转换表。
主机新了arp表中关于主机C的ip-->mac对应关系。
防火墙失效了,入侵的ip变成合法的mac地址,tel了。
上面是一个ARP的欺骗,这是同网段发生的,,提醒注意的是,B和C处于不同网段的时候,上面的方法是不起作用的。
3,2不同网段的ARP欺骗
图3不同网段的ARP欺骗
如图3所示A、C位于同一网段而主机B位于网段,三台机器的ip地址和硬件地址如下
A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA:AA
B: ip地址 192,168.1,2硬件地址 BB:BB:BB:BB:BB:BB
C: ip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC:CC
现的下,位于192,168.1网段的主机B如何冒充主机C欺骗主机A呢?显然用上面的办法的话,即使欺骗成功,那么由主机B和主机A也无法建立tel话,因为路由器不把主机A发给主机B的包向外转发,路由器发现地址192,168.0.这个网段之内。
现涉及到欺骗方式―ICMP重定向。把ARP欺骗和ICMP重定向结合一起实现跨网段欺骗的目的。
什么是ICMP重定向呢?
ICMP重定向报文是ICMP控制报文中的。特定的下,当路由器检测到一台机器用非优化路由的时候,它向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也把初始数据报向它的目的地转发。
我们利用ICMP重定向报文达到欺骗的目的。
下面是结合ARP欺骗和ICMP重定向进行攻击的步骤
为了使自己发出的非法ip包能网络上可以存活长久一点,开始修改ip包的生存时间ttl为下面的中带来的问题做准备。把ttl改成255,(ttl定义一个ip包网络上到不了主机后,网络上能存活的时间,改长一点本例中有利于做充足的广播)
下载一个自由制作各种包的工具(例如hping2)
然后和上面一样,寻找主机C的漏洞按照这个漏洞当掉主机C。
该网络的主机找不到原来的192,0.0.3后,再将新自己的ARP对应表。于是他发送一个原ip地址为192,168.0.3硬件地址为BB:BB:BB:BB:BB:BB的ARP响应包。
好了,现每台主机都知道了,一个新的MAC地址对应192,0.0.3,一个ARP欺骗完成了,,每台主机都只局域网中找这个地址而根本不把发送给192,0.0.3的ip包丢给路由。于是他还得构造一个ICMP的重定向广播。
自己定制一个ICMP重定向包告诉网络中的主机"到192,0.0.3的路由短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192,0.0.3的ip包丢给路由。"
主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192,0.0.3的通讯都丢给路由器。
入侵者终于路由外收到来自路由内的主机的ip包了,他开始tel到主机的23口。
其实上面的想法只是理想话的,主机许接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难。
TCP/IP协议实现中关于主机接收ICMP重定向报文有下面几条限制
新路由是直达的
重定向包来自去往目标的当前路由
重定向包不能通知主机用自己做路由
被改变的路由是一条间接路由
由于有这些限制,ICMP欺骗实际上很难实现。我们主动的上面的思维寻找一些其他的方法。为我们知道了这些欺骗方法的危害性,我们采取相应的防御办法。
3,3 ARP欺骗的防御
知道了ARP欺骗的方法和危害,我们给出一些初步的防御方法
不要把你的网络安全信任关系建立ip地址的基础上或硬件mac地址基础上,(rarp同样存欺骗的问题),理想的关系应该建立ip+mac基础上。
设置静态的mac-->ip对应表,不要让主机刷新你设定好的转换表。
除非很有必要,否则停止用ARP,再将ARP做为条目保存对应表中。linux下用ifconfig-arp使网卡驱动程序停止用ARP。
用代理网关发送外出的通讯。
修改系统拒收ICMP重定向报文
linux下防火墙上拒绝ICMP重定向报文或者是修改内核选项重新编译内核来拒绝接收ICMP重定向报文。
win2000下防火墙和IP策略拒绝接收ICMP报文。
4代理ARP的应用
代理ARP有两大应用,一个是有利的是我们防火墙实现中常说的透明模式的实现,个是有害的是达到交换环境中进行嗅探的目的.由此见同样技术被应用于不同的目的,效果是不一样的.
我们先来看交换环境中局域网的嗅探.
局域网环境中,我们都是交换环境的网关上网的。交换环境中用NetXray或者NAI Sniffer一类的嗅探工具除了抓到自己的包以外,是不能看到其他主机的网络通信的。
我们利用ARP欺骗实现Sniffer的目的。
ARP协议是再将IP地址为MAC地址的协议,局域网中的通信都是基于MAC地址的。
图4交换网络中的ARP欺骗
如图4所示,三台主机位于一个交换网络的环境中,其中A是网关
A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA
B: ip地址 192,168.0.2硬件地址 BB:BB:BB:BB:BB
Cip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC
局域网中192,168.0.2和192,168.0.3都是网关192,168.0.1上网的,假定攻击者的系统为192,168.0.2,他希望听到192,168.0.3的通信,那么我们利用ARP欺骗实现。
这种欺骗的中心原则是arp代理的应用.主机A是局域网中的代理服务器,局域网中每个节点的向外的通信都要它.主机B想要听主机C的通信,它先用ARP欺骗,让主机C认为它是主机A,这个时候它发一个IP地址为192,168.0.1,物理地址为BB:BB:BB:BB:BB:BB的ARP响应包给主机C,这样主机C把发往主机A的包发往主机B.同理,还要让网关A相信它是主机C,向网关A发送一个IP地址为192,168.0.3,物理地址为BB:BB:BB:BB:BB:BB的包.
上面这一步的操作和前面的ARP欺骗的原理是一样的,还是有问题,过一段时间主机B发现自己无法上网.所面还有一个步骤是主机B上转发从主机A到主机C的包,并且转发从主机C到主机A的包.现我们看到其实主机B主机A和主机C的通讯中起到了一个代理的作用,这是为什么叫做ARP代理的原因.
具体实现要用到两个工具dniff和fragrouter,dniff用来实现ARP欺骗,fragroute用来进行包的转发.
利用dniff中的arppoof来实现ARP欺骗,dniff软件下面的网址下载:
naughty.monkey/~dugong/dniff
安装这个软件包先要下载安装lib.
欺骗192,168.0.3,告诉这台机器网关192,168.0.1的MAC地址是192,168.0.2的MAC地址.
[root@ound dniff-2,3]./arppoof-i eth0-t 192,168.0.3 192,168.0.1欺骗192,168.0.1,告诉192,168.0.1主机192,168.0.3的MAC地址是192,168.0.2的MAC地址。
[root@ound dniff-2,3]./arppoof-i eth0-t 192,168.0.1 192,168.0.3现我们已经完成了步的欺骗,这个欺骗是arppoof来完成的,用别的工具甚至自己发包来完成.现我们看到主机A和主机C的arp列表里面都完成了我们的工作.后面的透明代理中我们再将用不同的理念.
下面我们先打开linux系统中的转发包的选项:
[root@ound/root] echo"1">/proc/yipv4/ip_forward下面我们下载大名鼎鼎的dugong的一个工具fragroute,这个工具以前叫做fragrouter(仅有1字的差别)用于实现入侵检测系统处理分片的ip和tcp包功能的检测,本身自代包转发的功能.到下面的网站下载:
monkey/~dugong/fragroute/
安装这个软件包先要下载安装libpcap和libevent.
我们用fragrouter来完成:
packettormecury/group/ w00w00/ectool/fragrouter/
[root@ound fragrouter-1,6]./fragrouter-B1
fragrouter: bae-1: normal IP forwarding
现实现交换局域网中嗅探的目标.上面这些只是一些原理性的,真正的用中遇到很多的问题,比如如何实现对网关A和主机C的欺骗,以及如何处理出现的广播风暴问题,这些实践中学习.还有一个叫arpniff的工具可以很方便的完成这一功能,很多网站都提供下载,界面比较友好,由于和上面的原理一样,只是工具用上的不同并且添加了一些附加的功能,这里不进行.
代理ARP的一个应用是防火墙的透明代理的实现.我们都知道早期的防火墙大都是基于路由模式,也是防火墙要完成一个路由的作用.这种接入方式局域网内的主机上设置防火墙的IP为代理,而且外部路由器的路由表中加入一条指向防火墙的路由.这种方式的缺点于不透明,进行过多的设置,并且破坏了原有的网络拓扑.现几乎全部的防火墙都实现了透明接入的功能,用户的路由器和客户端不用做任何修改,用户甚至感觉不到透明接入方式防火墙的存.这种透明接入的原理是ARP代理.
我们现看如何配置一台主机作为透明接入模式的防火墙(透明接入的防火墙不IP),
图5
如图5所示,一台防火墙连接内部网段和DMZ网段到外部路由.我们这台用作防火墙的主机上用linux操作系统,这样我们方便的用iptable防火墙.假设三块网卡为eth0,eth1和eth2,eth0和路由器相连,eth1和内网相连.eth2和外网相连.假设DMZ区有2台服务器.
内网地址:192,168.1,0/24
DMZ地址:192,168.1,2---192,168.1,3
路由器的ip地址:192,168.1,1
eth0:AA:AA:AA:AA:AA:AA
eth1:BB:BB:BB:BB:BB:BB
eth2:CC:CC:CC:CC:CC:CC
和前面差不多,步实现ARP欺骗,这次我们有个简单的实现.我们把路由器的IP地址和防火墙的eth1和eth2的网卡物理地址绑定,再将内网和DMZ网段的IP地址和eth0的网卡绑定,linux系统上我们用arp命令实现:
arp- 192,168.1,1 BB:BB:BB:BB:BB:BB
arp- 192,168.1,1 CC:CC:CC:CC:CC:CC
arp- 192,168.1,0/24 AA:AA:AA:AA:AA:AA
第二部我们基于linux的防火墙上设置路由,把目标地址是外部路由的包转发到eth0,把目标地址为内网的包转发到eth1,把目标地址是DMZ网段服务器的包转发到eth2,linux下面用route命令实现
route add 192,168.1,1 dev eth0
route add- 192,168.1,0/24 dev eth1
route add 192,168.1,2 dev eth2
route add 192,168.1,3 dev eth3
(针对DMZ网段里面的每台服务器都要增加一条单独的路由)现我们已经实现了一个简单的arp代理的透明接入,对应于防火墙的iptable部分要配置,iptable的配置不范畴之内.
小结
了ARP协议以及与其相关的安全问题。一个重要的安全问题是ARP欺骗,我们讲到了同一网段的ARP欺骗以及跨网段的ARP欺骗和ICMP重定向相结合的方法。由于有这些安全问题的存,我们给出一些的解决办法。谈到了利用代理ARP实现交换网络中嗅探和防火墙的透明接入。
单片机主机有哪些类型
一个集成一块芯片上的完整计算机系统。尽管他的大部分功能集成一块小芯片上,它一个完整计算机所的大部分部件CPU、内存、内部和外部总线系统,目前大部分还外存。集成诸如通讯接口、定时器,实时时钟外围设备。而现强大的单片机系统甚至再将声音、图像、网络、复杂的输入输出系统集成一块芯片上。
单片机也被称为微控制器(Microcontroler),是因为它早被用工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。早的设计理念是再将大量外围设备和CPU集成一个芯片中,使计算机系统小,容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中成功的是INTEL的8031,因为简单靠而性能不错获得了很大的好评。此后8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现还广泛用。随着工业控制领域要求的提高,开始出现了16位单片机,可因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,端的型号也只有10美元。当代单片机系统已经不再只裸机环境下开发和用,大量专用的嵌入式操作系统被广泛应用全系列的单片机上。而作为掌上电脑和手机核心处理的高端单片机甚至直接用专用的Window和Linux操作系统。
单片机比专用处理器适合应用于嵌入式系统,它得到了多的应用。事实上单片机是世界上数量多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标电脑配件中都配有1-2部单片机。而个人电脑中也有为数不少的单片机工作。汽车上配备40多部单片机,复杂的工业控制系统上甚至有数百台单片机工作!单片机的数量不仅远超过PC机和其他计算的,甚至比人类的数量还要多。
单片机
[编辑本段]
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲一块芯片成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。学习用单片机是了解计算机原理与结构的选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,价钱也是低的,不超过10元即......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现用的全自动滚筒洗衣机、排烟罩、VCD的家电里面都看到它的身影!......它是作为控制部分的核心部件。
它是线式实时控制计算机,线式是现场控制,的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的区别。
单片机是靠程序的,并且修改。不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!要是用美国70年代成功投放市场的系列单片机,结果有天壤之别!只因为单片机的你编写的程序实现高智能,高效率,以及高靠性!
由于单片机对成本是敏感的,目前占统治地位的软件还是级汇编语言,它是除了二进制机器码级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了视化编程的水平为什么不用呢?原因很简单,是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个视化高级语言编写的小程序里面即使只有一个按钮,也达到几十K的尺寸!家用PC的硬盘来讲没什么,单片机来讲是不能接受的。单片机硬件资源的利用率很高才行,汇编虽然原始却还是大量用。一样的道理,把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。,这种电脑,是指个人计算机,简称PC机。它由主机、键盘、显示器组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的小系统只用了一片集成电路,即进行简单运算和控制。因为它体积小,都藏被控机械的“肚子”里。它整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置瘫痪了。现,这种单片机的用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器。各种产品一旦用上了单片机,能起到使产品升级换代的功效,常产品名称前冠以形容词——“智能型”,如智能型洗衣机。现有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,是功能太简单且极易被仿制。究其原因,卡产品未用单片机或其它编程逻辑器件上。
单片机的应用领域
[编辑本段]
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化的实时控制和数据处理,广泛用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物,这些都离不开单片机。不用说自动控制领域的机器人、智能仪表、医疗器械了。单片机的学习、开发与应用再将造一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及控制领域,大致分如下几个范畴
1,智能仪器仪表上的应用
单片机体积小、功耗低、控制功能强、扩展灵活、微型化和用方便优点,广泛应用于仪器仪表中,结合不同类型的传感器,实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路加强大。例如精密的测量设备(功率计,示波器,各种仪)。
2,工业控制中的应用
用单片机构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统。
3,家用电器中的应用
这样说,现的家用电器上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不。
4,计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,很方便地与计算机进行数据通信,为计算机网络和通信设备间的应用提供了极好的物质条件,现的通信设备上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处见的移动电话,集移动通信,无线电对讲机。
5,单片机医用设备领域中的应用
单片机医用设备中的用途亦相当广泛,例如医用呼吸机,各种仪,监护仪,超声诊断设备及病床呼叫系统。
单片机工商,金融,科研、教育,国防航空航天领域都有着十分广泛的用途。
学习应中六大重要部分
[编辑本段]
单片机学习应中的六大重要部分
一、总线我们知道,一个电路总是由元器件电线连接而成的,模拟电路中,连线并不成为一个问题,因为各器件间是串行关系,各器件的连线并不很多,可计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件的工作相互协调,的连线很多了,仍如同模拟电路一样,各微处理器和各器件间单独连线,则线的数量再将多得惊人,微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联,可仅这样还不行,有两个器件送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种是不允许的,要控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(有多个器件接收)。器件的数据线也被称为数据总线,器件所有的控制线被称为控制总线。单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能用,分配地址也是以电信号的形式给出的,由于存储单元比较多,用于地址分配的线也较多,这些线被称为地址总线。
二、数据、地址、指令之再将这三者放一起,是因为这三者的本质都是一样的——数字,或者说都是一串‘0’和‘1’组成的序列。换,地址、指令也都是数据。指令由单片机芯片的设计者规定的数字,它与我们常用的指令助记符有着严格的一一对应关系,不由单片机的开发者改。地址是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不改,外部的单元由单片机开发者自行决定,可有一些地址单元是有的(详见程序的执行)。数据这是由微处理机处理的对象,各种不同的应用电路中各不相同,被处理的数据有这么
1•地址(如MOV DPTR,1000H),即地址1000H送入DPTR。
2•方式字或控制字(如MOV TMOD,3),3即是控制字。
3•常数(如MOV TH0,10H)10H即定时常数。
4•实际输出值(如P1口接彩灯,要灯全亮,则执行指令MOV P1,0FFH,要灯全暗,则执行指令MOV P1,00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。
理解了地址、指令的本质,不难理解程序运行中为什么跑飞,把数据当成指令来执行了。
三、P0口、P2口和P3的第二功能用法初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能要有一个切换的,或者说要有一条指令,各端口的第二功能完全是自动的,不用指令来转换。如P3,6、P3,7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口用,只要一微处理机一执行到MOVX指令,有相应的信号从P3,6或P3,7送出,不事先用指令说明。事实上‘不能作为通用I/O口用’也并不是‘不能’而是(用者)‘不’再将其作为通用I/O口用。你完全指令中按排一条SETB P3,7的指令,并且当单片机执行到这条指令时,也使P3,7变为高电平,可用者不这么去做,因为这这系统的崩溃。
四、程序的执行单片机通电复位后8051内的程序计数器(PC)中的值为‘0000’,程序总是从‘0000’单元开始执行,也是说系统的ROM中存‘0000’这个单元,并且‘0000’单元中存放的一定是一条指令。
五、堆栈堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP(原来值的基础上)自动加1,每当执行一次POP指令,SP(原来值的基础上)自动减1。由于SP中的值用指令加以改变,只要程序开始阶段改了SP的值,把堆栈设置规定的内存单元中,如程序开始时,用一条MOV SP,5FH指令,时把堆栈设置从内存单元60H开始的单元中。程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被用,这造成数据的浑乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为专用内存,它还是象普通内存区域一样用,只是下编程者不把它当成普通内存用了。
六、单片机的开发这里所说的开发并不是书中所说的从任务开始,我们假设已设计并制作好硬件,下面是编写软件的工作。编写软件,要确定一些常数、地址,事实上这些常数、地址设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也被确定了,当器件的功能被确定下来后,其控制字也被确定了。然后用文本编辑器(如EDIT、CCED)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,写片(再将程序固化EPROM中)。源程序被编译后,生成了扩展名为HEX的目标文件,编程器可以识别这种格式的文件,只要再将此文件调入即写片。此,为使大家对整个有个认识,举一例说明
ORG 0000H
LJMP START
ORG 040H
START
MOV SP,5FH;设堆栈
LOOP
NOP
LJMP LOOP;循环
END;结束
单片机学习
[编辑本段]
目前,很多人对汇编语言并不认。说,掌握用C语言单片机编程很重要,大大提高开发的效率。初学者不了解单片机的汇编语言,可了解单片机具体性能和特点,不然单片机领域是比较致命的。不考虑单片机硬件资源,KEIL中用C胡乱编程,结果只能是出了问题无法解决!肯定的说,的C语言单片机工程师都是从汇编走出来的编程者因为单片机的C语言虽然是高级语言,它不同于台式机个人电脑上的VC++什么的单片机的硬件资源不是非常强大,不同于我们用VC、VB高级语言台式PC上写程序毕竟台式电脑的硬件非常强大,才不考虑硬件资源的问题。
以8051单片机为例讲解单片机的引脚及相关功能;
《单片机引脚图》
40个引脚按引脚功能大致分为4个种类电源、时钟、控制和I/O引脚。
⒈电源:
⑴ VCC-芯片电源,接+5V;
⑵ VSS-接地端;
注用万用表测试单片机引脚电流为0v或者5v,这是标准的TTL电平,可有时候单片机程序正工作时候测试结果并不是这个值而是介于0v-5v,其实这之是万用表反映没这么快而已,某一个瞬间单片机引脚电流还是保持0v或者5v的。
⒉时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:控制线共有4根,
⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
① ALE功能用来锁存P0口送出的低8位地址
② PROG功能片内有EPROM的芯片,EPROM编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reet)功能复位信号输入端。
② VPD功能Vcc掉电下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能内外ROM选择端。
② Vpp功能片内有EPROM的芯片,EPROM编程期间,施加编程电源Vpp。
⒋ I/O线
80C51共有4个8位并行I/O端口P0、P1、P2、P3口,共32个引脚。
相关知识
如何破解加密的文件夹(如何制作一个产品网站名)
手机助手软件哪个好 好用的手机助手软件排行榜
tar文件如何解压(thinkpade580)
原神脚本软件,简单操作轻松挂机,单号日入100+永久软件+详细教程
文件管理系统软件推荐 手机文件管理系统app有什么
cfg文件用什么软件打开?速龙x4870k配什么内存
手机苹果健康下载软件,手机苹果健康下载软件怎么下载
齿字五笔怎么打?拆解为止+人+口,编码HWB三码速通
每个人都能有一个健康幸福的一生 的翻译是:Everyone can have a healthy happy life 中文翻译英文意思,翻译英语
如何修改文档密码?gtx650显卡
网址: 为什么还要主机编译(zip文件密码破解软件) https://www.trfsz.com/newsview1365997.html
推荐资讯
- 1发朋友圈对老公彻底失望的心情 12775
- 2BMI体重指数计算公式是什么 11235
- 3补肾吃什么 补肾最佳食物推荐 11199
- 4性生活姿势有哪些 盘点夫妻性 10428
- 5BMI正常值范围一般是多少? 10137
- 6在线基础代谢率(BMR)计算 9652
- 7一边做饭一边躁狂怎么办 9138
- 8从出汗看健康 出汗透露你的健 9063
- 9早上怎么喝水最健康? 8613
- 10五大原因危害女性健康 如何保 7828
