时间:2022-03-09 18:46:45
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇计算机硬件知识大全范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
Linux作为开源的操作系统从一诞生起便吸引着全球数以万计爱好者的目光,其开放、安全、稳定的特性得到越来越多用户的认可,应用也日益广泛。越来越多的公司和企业都把linux作为服务器来使用。为了满足社会对linux网络操作系统的需求,各大高校在计算机相关专业开设《linux网络操作系统》课程。而linux 中apache服务器的搭建需要一定数量的计算机和相关的硬件设备,才能顺利开展实验。但是限于资金、场地和设备等原因,专用网络实验室往往无法建立。Oracle VM VirtualBox虚拟机软件的出现,使得利用现有的有限设备,可以使复杂的网络教学实验的顺利完成成为可能。本文利用VirtualBox虚拟机软件,在一台计算机上安装CentOS 5这个linux版本,并在此基础上搭建了apache服务器仿真实验平台,并进行了测试。
一、VirtualBox虚拟机介绍
VirtualBox是一款开源虚拟机软件。Vir-tualBox是由德国Innotek公司开发,由Sun Microsystems公司出品的软件,在Sun被Oracle 收购后正式更名成 Oracle VM VirtualBox。[1] VirtualBox是一款功能强大的虚拟机软件,它是通过软件模拟而获得具有完整硬件系统功能的、能运行在一个完全隔离环境中的完整计算机系统,这种在物理计算机上模拟出逻辑计算机的方法使得单一的计算机能同时运行多个操作系统,它能提高计算机硬件的利用率,在教育培训、软件开发测试及技术支持等领域都有广泛的应用。[2]
随着计算机技术的迅猛发展,计算机的性能越来越强大,为虚拟机的运行环境奠定了良好的基础,同时虚拟机技术越来越成熟,性能越来越优越,系统越来越稳定。基于Windows平台的虚拟机目前应用较多的是Vmware、Virtaul PC和VirtualBox,基中VirtualBox是一个开源的、跨平台的、免费的虚拟机软件,与Vmware、Virtual PC这些虚拟机软件相比,它的性能更为优异,受到越来越多用户的推崇。
二、在CentOS 5.5上搭建Apache服务器仿真实验平台
Linux作为免费、开源的服务器操作系统目前在市面上的发行版很多,Red Hat Enterprise Linux是目前最成功的商业Linux套件发行商。和大多数Linux发行版一样,红帽企业版是免费的,但是它的服务和支持是收费的。后来,有对其不满者,克隆了Red Hat Enterprise Linux,取名为CentOS,其服务和支持都是免费的。目前很多企业和公司都选择了CentOS作为服务器操作系统。本次仿真实验选取CentOS 5.5作为实验平台。[3]
Web服务现在已经成为Internet上最热门的服务之一,它能够实现信息、资料查询、数据处理等应用,以便于人们快速地完成各种信息交流。架设Web服务是Internet必不可少的一部分,Apache是CentOS操作系统集成的Web服务器,它是目前性能最优秀、最稳定的Web服务器之一。开放源代码的Apache(阿帕奇)服务器起初是由ILLinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。Apache是世界使用排名第一的Web服务器,它可运行在UNIX、Linux和Windows等多种操作系统平台之上。[4]Apache借助开放源代码开发模式的优势,得到全世界许多程序员的支持,程序员们为Apache编写了能完成许多有用功能的模块,借助这些功能模块,Aapche具有无限扩展功能的优点。Apache的工作性能和稳定性也远远领先于其他同类产品,因此Apache服务器成为Internet上最流行的Web服务器。[5]
三、结束语
利用VirtualBox虚拟机搭建仿真实验平台,不仅解决了实验经费紧张和实验场地不足等问题,更重要的是营造了“自主学习”环境。利用此平台,学生可以运用所学的知识,进行各种虚拟体验,而且还可以开展创新性的实验。通过体验培养学生的学习兴趣,学生的兴趣一旦被激发出来,就会自主地学习,从而加速和巩固学习知识的过程。
参考文献
[1]仲劲.Linux服务器配置与管理[M].北京:北京理工大学出版社,2011.
[2]姚越.Linux网络管理与配置[M].北京:机械工业出版社,2012.
[3]杨明华.Linux系统与网络服务管理技术大全[M].北京:电子工业出版社,2008.
[4]梁如军,丛日权,周涛.CentOS5系统管理[M].北京:电子工业出版社,2008.
C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在计算机上广泛用在电子,机械等方面上。windows,Unix,Linux,Mac,os/2,哪一个不是C语言写的?很多新型的语言比如C++,Java,C#,J#,perl... 都是衍生自C语言。掌握了C语言,可以说你就掌握了很多门语言。
在这个暑假,作为一名计算机爱好者并立志在大学中选择并学习好计算机编程的学生,尝试着自学了C语言这门编程的入门语言,这是我学的第一门编程语言,当做是为大学里学习C语言这门计算机专业的必修课程打基础了,在学习中,我把语句设计当成游戏,自己设计出想要的效果很有成就感,让我在炎热的夏天里自己在加玩的不亦乐乎,既学到了知识又丰富了暑假生活。这里我想和大家分享一下我对C语言基础特别是语法基础的个人浅见。
C语言是计算机的基础,大多数软件都需要用C语言来编写,通过学习,使我由初步掌握简单的基本知识到完成深入一些的编程,我在编写一个较大的程序时经常把它分开成几个小程序来看,这样会容易得多。同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。在学习C语言的过程中我也在慢慢探索怎样才能学好C语言,并总结了一点经验:要了解C语言就要从语法基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是C语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。比如说IF ELSE 和 SWITCH CASE 这两种条件语句都是用来判断执行功能的,那我要什么时侯用IF 什么时侯用 SWITCH呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选SWITCH而不会选IF。因为如果条件分支太多时要用IF语句,这样一定会出现IF的嵌套,如果IF的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在降底。而SWITCH就不同,它只要比较一次就可以找出条件的结果比起嵌套IF它的效率就大大的提高了很多。不过SWITCH也有它的约束条件,就是它的条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时我们也会通常使用IF语句,毕竟IF语句它使用起来也比较方便用的范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础是很难编出一个好的程序! 学习c语言的初期重点要放在掌握语言的语法和规定上,一定要养成良好的编程习惯,平时写程序注意语法规范格式控制,格式规范了,出了错误也容易找到出错的地方,这是c语言的基础;后期的重点要转移到掌握编程的思路和基本算法上来。课后多做习题,找一些经典例子尝试自己编写,写程序切忌半途而费,想到一个思路,就要按自己思路把它写完,就算错了,也可以让自己了解为什么这样做会错?错在哪里?会出什么结果?以后自己也很难在这个地方犯同样的错误。当学到一个新的知识点,就试着把它运用到以前做的习题上,不但巩固了以前学的内容,也更加能加强新知识的理解。
掌握了语言法规则,仅仅是学习的开始,通过学习我认识到学习编程是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断闰年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就要出来了,程序也差不多了,再结合掌握的语言方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做,多读,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样的。
另外,良好的编程习惯也是学好c语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
假期在学习中很快就过去了,虽然我对C语言的学习才刚刚入门,但是在这个暑假我收获了很多,在即将到来的大学生活中,我将继续努力学习C语言乃至更对的计算机编程的知识,在新时代的计算机知识海洋中遨游。
参考文献:
[1]C语言程序设计基础教程.陈朔鹰等编著.兵器工业出版社,1994年9月.
中图分类号: P208 文献标识码:A 文章编号:1006-3315(2012)10-179-002
一、系统概述
1.系统概述
人口地理信息系统是近年来迅速发展起来的处理与地理信息有关的人口数据的一门新技术,具有对图形和数据进行存储、更新、编辑,对属性数据与空间数据一起进行分析和模拟等功能,能按索引数据项进行地图及其上面信息的查询,对同一地图进行分层显示,将各类统计信息逐层叠加在同一地图的不同层(如行政区划、河流、公路、建筑物等)上,并能将分析结果以地图、表格、图形或统计报告等形式输出。
在对人口地理信息系统的应用中,人与真实世界的交互,通过地图的数字化,以及跨平台集成方法,让人能够很容易了解人口的密集度,掌握人口的信息。
系统开发环境:Visual Basic 6.0 可视化软件开发环境、Microsoft WindowsXP 操作系统。
数据制作环境:Photoshop等图形设计软件、MapInfo地理信息系统软件、Microsoft Access桌面数据库软件。
系统应用平台:Visual Basic 6.0;MapInfo 7.0。
2.数字中的地图
数字地图凭借计算机高效、准确的处理功能来表示传统在纸质地图上用图形、符号、颜色、注记等表示的空间信息,进而产生各种满足不同需求的新的产品模式,表现为存贮介质、显示设备和内容三个方面的差别。
数字地图在内容上主要表现在三维信息和时态信息的引入,还使地图与影像、不同比例尺地图、不同类型地图的纵向连接与集成,以及城市、省、国家及世界范围的地图横向“无缝”连接成为可能。对许多数字地图应用(如导航、监控、指挥等系统)来说,动态化、实时化成为应用最重要的指标。
所谓地图数字化就是将地图转换为计算机系统能够识别的数据文件,这种数据文件符合一定的数据格式,有特别的比例尺和精度,包括各空间要素在某一坐标系统中的位置和属性,它们可以通过接收其格式的软件系统来管理、提取、分析和编辑制图。地图数字化是建立地理信息系统的基础,是地理信息系统的关键技术。
3.地理信息系统的概述
地理信息系统是以采集、存储、管理、描述和分析与地球表面及空间地理分布有关的数据的信息系统。它是以地理空间数据库为基础,在计算机硬件、软件环境支持下,观看空间相关数据进行采集、管理、操作、分析、模拟和显示,并采用地理模型分析方法,适时提供多种空间和动态的地理信息,为地理研究、统合评价、管理、定量分析和决策服务而建立的一类计算机应用系统。
从学术和技术的角度看,地理信息系统是结合计算机、系统工程、经济管理等多学科的知识,属跨学科的技术系统。按其内容可分为:专题信息系统(Thematic Information),如灾害监测信息系统等;区域信息系统(Regional Information System)如加拿大国家信息系统、我国黄河流域信息系统等。事实上,许多实际的地理信息系统是介于上述二者之间的区域性专题信息系统,如北京市水土流失信息系统等。
一般来说,一个完整的地理信息系统通常由四个部分组成,它们是计算机硬件环境、软件环境、地理空间数据、系统维护和使用人员。
4.人口分类系统
人口统计信息系统是地理信息系统按职能不同的分类。
人口地理信息系统就是为了满足城市人口空间分析而设计的,是具有面向非计算机用户的实用信息系统。它建立在地理信息系统平台上,具有人口管理信息系统与基础地理信息系统的综合功能,可进行常规人口统计、人口时间序列预测、人口地理空间分析、空间查询与人口动态空间预测、人口地理分布与流动模型建立,是人口地理分析与辅助决策的重要工具。
在本系统中,是利用Visual Basic 的编程语言的可嵌入式特点,再加上MapInfo的本身有查询、图形、数据库等功能,充分实现了与真实世界的交流。
所谓人口分类在本文中,就是将人口信息通过使用计算机将人口信息结合地理信息开发出来的应用系统。
系统功能:地理信息与人口信息查询显示;电子地图的缩小、放大、漫游、鹰眼;按地区查询相关的人口信息;显示各个年龄段的人口信息。
二、系统设计
建立一个完善的大型应用系统,应对各种不同平台博采众长,利用其他平台能够调用MapInfo环境下的数据、图形等。在Windows环境下,可以通过MapBasic之外的其他编程语言控制MapInfo,例如,可以将MapInfo的地图窗口集成到用Visual Basic编程语言开发的应用程序中。另外,C、Visual Basic或Delphi等,可以集成MapInfo窗口到非MapBasic应用程序中。特别是在原有成熟的应用系统中,增加地理信息管理功能,这种方法是简捷有效的。
生成一个集成地图的应用程序,不仅可以采用一种非MapBasic语言,还可以采用多语言混合编程。常用的是C和Visual Basic两种语言。在这里选用的是Visual Basic语言。
1.系统逻辑结构设计
2.系统功能模块设计
3.地图数据
背景数字地图数据包括几何图形数据和索引数据。几何图形数据以矢量化数据存在,地图的显示需要从大量索引中检索出相关的几何图形数据。
由于MapInfo可以同时含有图形表与信息表的文件,所以当在建立数据时,可以在MapInfo中同时生成数据库文件。
数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。
根据数据库的要求,按照MapInfo的格式,进行将数据库的分层与结构设计,设计出数据库的E-R图。
4.系统查询设计
系统对信息的查询,是针对地图来显示记录位置以及信息的。可以查到记录在地图上位置,并直观的显示出来。
5.系统物理结构设计
在地图数据库技术中,对数据库的一切操作都要落实到对文件的存取,因此文件组织是整个系统的基础。文件是由记录组成的,结构组织的复杂程度取决于文件的使用方式。文件有逻辑文件和物理文件之分。逻辑文件指的是用户眼中的文件,只涉及各个记录的内容而不考虑他们在存贮器上是如何存贮的。物理文件则涉及到记录在存贮器上的物理组织方法。
三、系统实现
1.系统中应用程序间的访问
VB与MapInfo都支持OLE Automation方式。OLE Automation方式,实际是一种编程接口,通过它应用程序可以访问在另一个应用程序中实现的对象,提供编程对象给其他应用程序的称“服务器”,访问这些对象的应用程序称“客户机”。这里利用OLE Automation方式,在VB应用程序中将MapInfo作为一个对象来使用,编程调用MapInfo对象,实现对人口信息的集成。
VB与MapInfo的接口:在VB应用程序里实现对另一个应用程序(MapInfo)的访问,利用前面所提到的OLE Automation技术,把MapInfo作为服务器,VB应用程序作为客户机,可以无缝地实现集成MapInfo对象于VB应用程序中。
2.系统功能模块实现
3.2.1界面
3.2.2预览图形显示模块
3.2.3选择图形模块
3.2.4数据查询模块的实现
四、结束语
地理信息和发展必将进入一个全新的时代,制图者将成为“信息结构设计师”。
由于现在人口流动频繁,人口管理不便,所以人口地理信息系统的进一步开发迫在眉睫。
参考文献:
C/T=0时,选择定时功能。
T0、T1 的计数、定时功能是通过TMOD中的位来选择的。
3、 M1、M0——工作方式选择位。
由于有M1和M0两位,可以有四种工作方式,如下表所示。
定时器/计数器的工作方式
M1
M0
工作方式
计数器配置
方式0
13位计数器
1
方式1
16位计数器
1
方式2
自动重载的8位计数器
1
1
方式3
T0分为两个8位计数器,T1停止计数
3 串行数据通信程序设计
3.1 通信协议
本系统串行通信采用异步通信方式。协议如下:
1.一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。
2.波特率设为9600bps。单片机串行口按方式1工作,波特率由定时器T1控制,PC机串口波特率通过VB通讯控件的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。
本次通讯中,我们以一个测控系统的上位机和下位机之间的通信为背景,给出单片机部分和VB 环境下的通信程序实例,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用异步串行通信方式,通过RS232 的RTS 信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。
3.2 下位机(单片机)串行通信及程序设计
平台介绍及编程方法
汇编语言
汇编语言是针对一类(甚至几类)计算机,抽象出来的一种符号语言并把这些符号加以统一规定,使得使用同类计算机的人都了解这些符号的意义,这样,使得用汇编语言编写的程序可以在这一类型的任何一台计算机上使用。这就有了极大的灵活性,当然不同类型的计算机的汇编语言也不同。它们都必须由生产厂家提供的汇编语言来编写。另外.汇编语言还增加了宏指令的功能。汇编语言是计算机卫程控制中最常用的语言。
汇编语言的主要优点就是可以直接控制计算机硬件,可以编写在时间和空间两方面更有效的程序。这些优点使得汇编语言在程序设计中占有重要的地位。是不可取代的。
但汇编语言的缺点也是明显的,它与处理器密切相关,要求程序员熟悉计算机硬件系统,考虑许多细节问题,所以程序繁琐,调试、维护、交流和移植困难。因此,有时可以采用高级语言和汇编语言混合编程的方怯,互相取长补短,更好地解决实际间题。
汇编语言生要应用场合有以下几种:
l)程序要具有较短的运行时问,或者只能占用较小的存储客量。例如操作系统的核心 程序段,实时控制系统的软件等。
2)程序与计算机硬件密切相关,程序要直接控制硬件。例如to接口电路的初始化程序段,外部设备的底层驱动程序等。
3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动态链接库等。
4)没有适合的高级语言的时候。例如开发最新的处理器程序时。
伟福软件介绍:
伟福系列仿真器伟福仿真品种多、功能强,特点如下:
1)主机+POD组合,通过更换POD,可以对各种CPU进行仿真。
2) 双平台:DOS版本,WINDOWS版本。其中WINDOWS版本功能强大。
3) 双工作模式:a.软件模拟仿真(不要仿真器也能模拟仿真)。 硬件仿真。
4) 双CPU结构,100% 不占用户资源。
5) 双集成环境:编辑、编译、下载、调试全部集中在一个环境下。多种仿真器,多类CPU仿真全部集成在一个环境下。可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。伟福 WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。
6) 强大的逻辑分析仪综合调试功能:随着科学技术的发展,单片机通讯方面的运用越来越多。有了逻辑仪,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在。从而极大地方便了调试。
7) 强大的追踪器功能:追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。屏幕窗口显示波形图最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。
编程方法
本系统中传输协议为9600,8,N,1,即波特率为9600b/s,传送8个数据位。没有校验位,一个停止位。在PC机中也设置为相同的协议。1)控制寄存器SCON的设置为:SM0、SM1为0、1,即为串行工作方式1,REN为1,即允许接收。这样SCON中的值是0X50H,(使用汇编语言是MOV SCON,#50H。)2)TMOD寄存器的设置为:使用定时器1。M0=0,M1=1,工作于方式2,自动重新载入计数值。TMOD=0X20H。(使用汇编语言是MOV TMOD,#20H)3) 波特率的设置:本系统上的工作时钟为11.0592MHz, 波特率为9600b/s,对TH1的重载入计数器值由下式计算可得:TH1=256-11059200/384*9600=253=FDH TH1=0XFDH(使用汇编语言是MOV TH1,#0FDH)。
流程图如右:
接收程序:
MAIN: MOV
TMOD,#20H ;
MOV
TH1,#0FDH;
MOV
TL1,#0FDH;
SETB TR1;
MOV
SCON,#50H;
LOOP: JBC
RI,DISP
SJMP
LOOP
DISP: MOV
A,SBUF
MOV
DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
SJMP LOOP
TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
发送程序:
ORG 0000H
START: MOV
TMOD,#20H;
MOV
TL1,#0FDH
MOV
TH1,#0FDH;
SETB
TR1
MOV
SCON,#40H
MOV
R0,#20H
MOV
R7,#32
MOV
A,#40
LOOP1:
MOV
@R0,A
INC
A
INC
R0
DJNZ
R7,LOOP1
MOV
R0,#20H
MOV
R7,#32
LOOP:
MOV
A,@R0
ACALL YANSHI
ACALL SPOUT
INC
R0
DJNZ
R7,LOOP
SJMP
START
SPOUT:
MOV
SBUF,A
JNB
TI,$
CLR
TI
RET
YANSHI: MOV
R6,#250
D1:
MOV
R5,#250
DJNZ
R5,$
DJNZ
R6,D1
RET
END
3.3上位机(PC机)串行通信及程序设计
3.3.1 平台介绍及编程方法
VB语言简介
在本系统中PC机采用Visual Basic(简称VB)编程。VB已成为WINDOWS系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件,而且可以十分简便地作出良好的人机界面。
用VB6.0开发串行通信程序有两种法,一种是利用Windows的API函数;另一种是采用VB6.0的通信控件MSComm。利用API函数编写串行通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富、应用面更广泛,适合于编写较为复杂的低层次通信程序。而VB6.0的MSComm通信控件提供了标准的事件处理函数、事件、方法,并通过控件属性对串口参数进行设置,比较容易地解决了串口通信问题。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位和停止位。在发送或接收数据过程中触发OnComm事件,通过编程访问 CommEvent属性了解通信事件的类型,分别进行各自的处理。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。
转贴于 PC机程序设计流程图如下示
3.3.2 VB6.0的通信控件及通信方式
MSComm通讯控件简介
MSComm是VB6.0提供的ActiveX控件,使用前需将该控件添加到VB工具 栏。MSComm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式,事件驱动方式:由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查CommEvent属性的值来判断事件和错误。
1)MSComm控件的主要属性和方法
a.
CommPort:设置或返回串行端口号,其取值范围为1—99,缺省为1
b.
Setting: 设置或返回串行端口的波特率、奇偶校验位、数据位数、停位。如:MSComm.Setting="9600, n, 8, 1”。
c.
PortOpen:打开或关闭串行端口。
d.
RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml--OnComm事件。
e.
Input:从接收缓冲区移走一串字符。
f.
Output:向发送缓冲区传送一字符串。
2)CommEvent属性 :
如果在通讯过程中发生错误或事件,就会引发OnComm事件并由CommEvent 属性代码反映错误类型,可根据该属性值来执行不同的程序操作或数据处理。以下是部分属性常数值及其含义:
a.
ComEvSend:其值为1,发送缓冲区的内容少于SThreshold指定的值。
b.
ComEvReceive:其值为2,接收缓冲区内字符数达到RThreshold值,该事件在缓冲区中数据被移走前将持续产生。
c.
ComEventRxParity:其值为1009,奇偶校验。
d.
ComEvEOF:其值为7,接收数据中出现文件结束字符。
本系统采用事件驱动方式进行串口通信设计,下图2为上位机通信界面,设计了2个命令按扭,分别为发送、清空数据;两个文本框,Text1用于输入需从下位机读取的数,Text2用于显示下位机发送来的数据;3个Frame控件,一个Label控件,当然还需要一个MSComm控件。
MSComm控件属性设置如图1示:
(图2)
下面是MSComm控件的初始化程序、部分数据发送和接受程序
4调试与结论
该系统目前已调试成功,完成了PC机与51单片机之间的串行通信。并且实现了下列功能:1)在VB界面上发送任一数字在51单片机的数码管上都能成功的接收 2)同样通过向51单片机内写入的程序,在VB界面上可以接收到相对应的内容且运行良好。
调试过程如下:
硬件方面:
该系统的硬件调试主要是排查单片机印刷电路板的问题和连接上的一些问题。在该系统中,首先通过了仔细地推敲系统原理,确认无误;其次对照设计图纸查印制电路板,看是否有粘接等工艺现象;最后,检查外围连接是否有误,通过这几个方面的反复调试,可确保电路板的无误性。
在本系统的硬件调试过程中,出现了下列两种情况
1)电压不稳定而导致程序无法写入的情况,使电压稳定的方法是改用新的电池,或者是再次设计电源方案,在这里是用电源接通教学实验板,然后再把教学实验板与本系统相
连接,这样,就可以得到稳定的电压了。
2)还出现的一个问题是数码管不显示,检查后是焊接上出现了一点的失误。
软件方面:
本系统在软件调试方面也没有规律可循,调试时更多的是凭经验。软件调试的主要任务是排查错误。通过在Wave E2000编译器下调试程序,有两种错误,一种逻辑错误,也就是语法错误,是很容易被发现的,另一种是功能错误,是指在没有语法错误的基础上,由于设计思想或算法的问题导致不能实现软件功能的一种错误。调试过程中出现的问题主要有以下四个方面:
1)用其它串口调试软件能够很好的实现两者之间的串行通信,成功的接收和发送数据,但使用我们的VB程序却不能实现,要么只能实现接收功能,要么只能实现发送功能。之后通过对VB程序做多次的改动与测试才达到理想的结果。
2)在VB界面上发送的数据与单片机的数码管上显示的数字不相符,这个问题是我们汇编程序的问题,由于汇编语言符号的繁多加上我们的粗心在输入代码的过程中难免出现一些看不见的问题,造成调试过程中出现意外。借此我想提醒大家的是搞设计搞研究必须做到细心,要有一颗敬业的心对待我们接受的任务,有耐心面临出现的困难。
3)由于要实现上下位机的串行通信,所以两者之间的波特率是否一致也是一个不容忽视的问题,在开始我并没有太注意这个方面的情况,到各方面的准备工作都做好要进行调试的时候,才发现有个二者波特率设置是否相同将影响到整个通信过程,我赶紧作了修改才免遭一次调试失败。
4)还有最后一点注意的地方是,利用MSComm控件比较方便地开发串行通信程序,实现串行通讯原理已经得到实验结果验证,考虑到将来对系统实时性的要求,采用了MSComm控件的查询处理机制,避免了中断处理机制的不稳定和不连续性,而且还可以很方便地控制多个串口,只需插入多个MSComm控件,并为每个MSComm控件编写OnComm()函数。但是我们也清楚的体会到MSComm控件在VB中的使用较为复杂。这一点是我们以后在运用中需要加强的地方。
伴随着单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。希望通过大家的共同努力能在PC机与单片机这方面取得新的成绩有突出的表现,能够很好的将学到知识运用到实际生活中,比如上面提到的利用单片机实现对温度的实时检测与控制已经得到广泛的应用。另外我们还可以在单片机的接口上再加接显示器,这样就更能方便的对系统进行操作与控制。
通过这次毕业设计,我深刻体会到专业知识、专业技能分析和解决问题的能力在实际生活中是多么的重要,在完成设计任务的同时我这些方面的能力有了一个全面的提高和锻炼。具体表现在对单片机与PC机的串行通信的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(汇编语言与VB)的掌握方面都向前迈了一大步,为日后使我能成为合格的应用型人才打下了良好的基础。
采用本系统实现PC机与单片机串行通信与一般其它系统的比较:一般的PC机与单片机之间的串行通信,需要单片机采集数据,然后用异步串行通讯方式传给PC机。相对而言通讯速率不是很理想,在一些要求通讯传输速率比较快的地方,普通的PC机与单片机之间的串行通信显然是不能满足其要求的。利用VB6.0 的事件驱动方式可以很方便地开发数据采集与监控系统,用单台PC 机可以测量和监控多路控制信号,整控制系统设计方便,对小型测控系统的设计具有很大的实用性。且传输数据的速率要比普通的串行通信要快些。
对于目前广泛应用的Windows环境下实现PC机与单片机之间的通信问题,希望大家能提出宝贵的意见。
参考文献
[1]蔡美琴等.MCS-51系列单片机系统及其应用(第二版).高等教育出版社,2004.
[2]杨毓,李明.Visual Basic6.0实用开发教程[M].成都:电子科技大学出版社,2001.
[3]刘新民,蔡琼等.VB6.0程序设计.北京:清华大学大学出版社,2004.
[4]李华.单片机通用接口技术[M].北京:北京航空航天大学出版社,1999
[5]魏庆福,姚亦鸣,等STD总线工业控制机的设计与应用[M].北京:科学出版社,1992
[6]何立民,单片机应用系统设计.北京:航空航天大学出版社,1992
[7]美Jan Axelson 著,串行端口大全,精英科技译,2001.5四
[8]刘瑞新等. Visual Basic程序设计教程,北京:机械工业出版社, 2002
码农们如何变得高大上:硬件知识学起来如下:列几个项目,坐地铁时,记得看看。如果对某方面感兴趣可以留言告诉我们哦,小编会为你们整理相关资料的~
1EMC与安规
EMC与安规在规模较大的公司都有专门的团队,但小公司只能硬件工程师亲手来。
CE认证测试项目最多,学习可以先关注CE的相关标准。不同行业的标准是不一样的,汽车电子和信息技术设备的测试方法和要求都不一样。
EMC理论个人觉得已经发展的比较形象(不像电磁场那么理论抽象),精髓就是EMC三要素,干扰源、敏感源和耦合路径。设计分析就是关注共模电路的回流路径或者泄放路径
2
RF与天线
同样的RF与天线在规模较大的公司也有专门的团队。
行业发展到现在,硬件工程师的RF和天线设计工作基本就是选型了。因此,需要明白一些基本的参数如增益、P1dB、IP2、IP3、天线的方向性等等。
3
电源
电源部门在规模较大的公司也有专门的团队,无论板级DCDC电源还是电源适配器都有专人完成设计、选型或测试工作,硬件工程师应用时标准电路拿来用即可。
关于电源大概就以下几个方面。
DCDC有几种基本拓扑?效率与什么有关?
LDO原理是什么?设计需要注意哪些参数?
POE协议是否熟悉?
4
时钟
晶体和晶振有什么区别?怎么设计?
时钟信号有哪些关键参数?
PLL的原理是什么?环路带宽是什么意思?PLL失锁的可能有哪些?
时钟芯片如何选型?
5
小模拟电路和小逻辑电路
硬件工程师的工作是系统级应用,不是IC设计的大神,工作中很少用分立器件设计电路。
二极管、三极管、MOS管和运放的特性要熟悉会分析,简单的电路要设计。
如三极管电平转换电路怎么设计,为毛低温就不工作了?
如MOS管双向电平转换怎么设计?要关注什么参数?
如MOS管的米勒效应,能不能定量的用公式分析?
6
高速信号及信号完整性
建立时间与保持时间?
时钟的抖动分哪几类?
数据相关抖动是什么?
CDR是什么?
抖动与误码率的关系是什么?
EQ、去加重、预加重?
7
低速信号
I2C、UART、SPI是什么?
会不会通过示波器测量判断通信数据对不对?
8
RAM 和ROM
NAND FLASH和NOR FLASH有什么区别?
DDR3 SDRAM原理是什么?CL、AL、RL、WL是什么?各种参数的会不会设置?
9
CPU、SOC、FPGA
X86、ARM、MIPS、POWERPC有什么区别?
FPGA设计需要注意什么?IC设计领域了解嘛?
关注自己的行业不同行业的技术是不一样的,应用环境及解决方案也不一样
如你是设计智能电视的
1、视频相关知识?BT1120是啥?H.264是啥?YUV是啥?4:2:2是啥?什么是HDMI?具体协议是啥?
2、思考下产品,内容重要还是硬件重要?能不能优化下3D?
如你是设计交换机的
1.802.3了解嘛?啥是MAC?啥是PHY?GMII接口如何设计?
2.交换机如何工作的?VLAN是啥?
3.客户是啥?教育网还是运营商?
如果你设计无线路由器的
1.802.11
a/b/g/n/ac的区别?TCP/IP协议是啥?ARP是啥?路由的工作原理?
2.天线如何设计的?增益、方向图是什么?各种PA、LNA如何选型?
3.客户是啥,需求如何?150块卖给普通人,还是1000块卖给企业级用户?
有两个领域值得去深入研究,以后是物联网的时代,网络和无线通信的应用会越来越多。
网络
也是交换机和路由器等应用与组网。现在互联网基于以太网,802.3标准规定了MAC和PHY规范。上层协议如TCP/IP、UDP、ARP、环网等等,总之网络的水很深,值得一探。
无线通信
如移动通讯、WIFI、sub1GHz等等应用会越来越多,之前国家的什么旅游规划,有一条就是景区要实现免费WIFI覆盖。无线通信也基本是802.x协议族。基带和RF都可以深入学习。
最后一点
如果你不是必不得己,还是不要做码农,如果你必须做技术,那就做一个硬件工程师吧,了解下以上知识足够了,每天给供应商打几个电话,看看ppt,开开会,耍几个专业名词,放心,你的老板和那帮码农是听不懂的。
新手必看的电脑硬件知识大全一、CPU
电脑的CPU(中央处理器)就相当于人的大脑,现在市面上的CPU主要分为两大阵营,分别是Intel(英特尔)和 AMD,性能都是以产品型号来区分。这里我们用英特尔来举栗子。
四位数中最重要的是第一位,它表示了 CPU 的代数,因此这一位的数值越大,该 CPU 的架构也就越新,从而带来更高的性能和更低的功耗。后三位数字对 CPU的性能通常影响不大,我们没有必要考虑。
看CPU好坏,最直观的方法是看CPU天梯图,详见最新「CPU天梯图。
二、显卡
显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。对于从事专业图形设计的人来说显卡非常重要。下面以最常见的NVIDIA独立显卡为例,教大家如何判断显卡性能。
显卡分为NVIDIA和AMD两个品牌,两个品牌的命名规则如下:
1、Nvidia显卡
(1)从高到低的显卡系列是:GTX系列、GTS系列、GT系列、GF系列以及iris集成显卡系列。另外还包括为专业工作站而设的Quadro显卡系列(这个系列市场上见的不多,基本数字越大性能越高)
(2)不同的系列命名规则是一样的,以GTX980Ti为例。首先数字9表示的是GTX系列第九代显卡,核心是GM204。后面的数字8就表示在这一代显卡里面的定位,一般在5一下的是属于中低端显卡,比如GT740就是第七代的中低端显卡;而7及以上的就是高端显卡,如GTX 970。
2、AMD显卡:以前使用的是Radeon
HD命名,最新出了以RX系列命名的显卡。
(1)R系列的显卡分为三种:RX5700XT表示高端显卡,如RX 5700和RX 5700XT;RX580表示中端显卡,如RX560;R5表示的是低端的入门级独立显卡,如R5 230。
(2)旧的命名方式更好判断性能,以HD7950为例,首先数字7表示AMD第七代显卡,一般最新的一代在架构上有进步,性能会更好一些。后面的9表示的是在第七代显卡中的性能定位,8和9属于高端显卡,6和7属于中端显卡,5及以下的就属于低端显卡。
看显卡好坏,最直观最方便的则是看显卡天梯图,详见最新「显卡天梯图。
三、主板
主板不像CPU和显卡一般有明显的性能差异,你买了更高端的CPU和显卡就能享受更强的性能,但主板是一个载体,一个支撑所有硬件的骨架,只有根据CPU兼容性和是否支持超频,来合理搭配、选择适合自己的主板才能获得更好的使用效果。
四、内存·
内存是用来暂时存放 CPU 运算数据的硬件,我们大可把它理解为“ 为程序运行提供的空间”,越大越好,如今装机标配8GB大内存,大型游戏或者专业设计则建议上16GB大内存,下面我们用金士顿的内存条来举例子。
内存
五、硬盘
目前,硬盘分为机械硬盘和固态硬盘。简单来说,机械硬盘读写速度慢、容量大、价格便宜、数据恢复方便、但比较笨重,不抗震,适用于存放较多文件;固态硬盘读写速度快,又轻又小,但价格很贵,适用于多系统安装,保证开机速度、系统流畅度。
硬盘
由于固态硬盘体验更好,如今SSD早已经是主流电脑的标配。不过,需要注意的是,常见固体硬盘又分M.2和SATA接口,M.2NVME接口固态硬盘速度最快,价格相对也更高,适合追求高速的朋友推荐,普通用户一般买SATA固态硬盘就够了,价格便宜,兼容性强。
M.2固态硬盘最小是10Gb/s,大的达到了32Gb/s,普通的SSD盘SATA3.0带宽是6Gb/s,机械硬盘HDD速度在100MB/s左右,在读写速度方面M.2 明显超越了普通 SATA SSD和HDD硬盘的;
与MSATA相比,M.2主要有两个方面的优势。第一是速度方面的优势。M.2接口有两种类型:Socket 2和Socket3,其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E×4接口,理论带宽可达4GB/s。
六、机箱电源
机箱方面,主要是外观部分,根据自己的喜欢,选择就可以了。当然,如果是想要体验水冷,在买机箱的时候,则需要注意下机箱是否支持水冷散热器等。
一般的机箱水冷一般支持到240MM,也就是双风扇水冷,如果要使用360MM水冷的话建议询问一下购买客服,或者自己上网定制。机箱的大小也要考虑到自己的各种硬件能否容纳,比如说三风扇显卡,以及大型主板、塔式风冷散热,小机箱可能无法安装。
电源则相当于电脑的心脏,为电脑各硬件供电。虽然电源在主机硬件中不起眼,但其稳定在起着至关重要的作用,低价山寨电源偷工减料厉害,容易导致电脑频繁死机,甚至烧坏硬件。因此,买电源不仅仅是主看额定功率大小,还要看电源的稳定性与质量,一般强烈建议推荐品牌主流型号电源,以保证稳定与耐用。
80PLUS认证标准
上图为电源的80PLUS认证标准,一般最低保证选用白牌以上的电源,用的比较放心,质量也可以得到保证。
电源还分为全模组与非全模组电源:
全模组电源
非全模组电源
全模组与非模组电源的区别:
1、外观上不同
非模组电源从内部引出一大堆供电线,模组电源则是用模组接口板代替。拆开电源后,可以看到,非模组电源的供电线直接从PCB板上引出,而模组电源则是把从PCB板引出来的供电线在输出接口处连接到模组板。
2、工作效率不同
非模组电源的PCB板和供电线只有一个连接点,所以损耗很低。但是模组电源的PCB板和连接到主机的供电线之间有两个连接点,由于多了连接点,因此损耗更高。同规格下模组电源的效率要比非模组电源低了一点。
3、转换效率不同
实际功率越高,模组电源的损坏也会提高,比如市电下负载百分百的模组电源,要比非模组低了0.6%左右,不同的电源表现不同,但同样状态下,模组电源确实要比非模组电源的转换效率更低。
芯片背后的这些硬件知识你都学会没有?
前言
我们都知道芯片,也知道芯片技术在21世纪是最重要的技术之一,但很少有人能知道芯片技术的一些细节,如芯片是如何构造的、为什么它可以运行程序、芯片又是如何被设计制造出来的等等。本文就尝试从最底层的二极管开始,逐一讲讲二极管、mos管、逻辑门电路、集成电路、大规模集成电路是如何逐步构造成我们所熟知的“芯片”。
二、从二极管到逻辑门电路
二极管
二极管是大家熟知的基本器件之一,可以说二极管的发明和大规模使用是现代工业腾飞最重要的基础之一。二极管的特性就是电流单向导通,如下图所示,一般情况下电流只能从A到B而不能从B到A,且这种单向导通还有个特点就是施加的电压必须大于某个数值,如硅二极管为0.5V才能导通,且导通后继续增加电压会导致电流大幅增加(相当于电阻下降)。
在逻辑上可以这样理解:施加在二极管上的电压小于0.5V时它是不通电的(表现为极高的电阻),当电压等于0.5V时二极管突然就导通了(表现为极低的电阻)。所以我们总结一下二极管的特性:
1、只能单向导通
2、施加电压低于0.5V时完全不导通
3、施加电压等于0.5V时突然完全导通
事实上,科学家们正是利用上述的简单特性构建了庞大复杂的电子世界。
三极管
在二极管的基础上,科学家们进一步研究出了三极管。三极管的特点就是增加了一极,不由施加在两端的电压大小决定是否导通,加入了第三极,使用三极间压差来决定是否导通。如下图所示,工作时b、c、e极都施加了一定的电压,这里不探究具体电压差是如何导致c、e间导通的,简单来说就是通过各极间压差实现c、e间先是逐渐导通(表现为压差增大电流增大),而后变为完全导通(表现为压差增大而电流不变)。且这种特性也是挑方向的,只能是c到e的导通而不能是e到c的导通(即施加反向电压再高也不会反向导通)。
逻辑上我们可以做如下总结:
1、只能c到e导通(反向施加电压无法反向导通)
2、压差低于某值A时完全不导通(无电流)
3、压差高于某值A时逐渐导通(电流随压差增大)
4、压差高于另一值B时完全导通(电流不随压差变化)
逻辑门电路
了解了基本器件后,我们再来说说数学。在数学上我们有三个基本逻辑:与、或、非。
与(&):0&0=0、1&0=0、0&1=0、1&1=1
或(|):0|0=0、1|0=1、0|1=1、1|1=1
非(!):!0=1、!1=0
科学家们使用二极管、三极管、电阻、电容在电路上实现了上述的三个基本逻辑,具体表现为:
1)与门:A、B两端同时输入5V则L端输出5V,否则L端输出0V
2)或门:A、B任意一端输入5V则L端输出为5V,A、B端同时为0V时L端输出为0V
3)非们:A端输入5V则L端输出0V,A端输入0V则L端输出5V
这里我们就不探究逻辑门的具体原理了,大家只要知道二极管、三极管的物理特性使得这种逻辑电路运行的非常稳定,以非门为例,当A端输入小于5V时L端输出稳定为5V,当A端等于5V时L端会立即输出为0V(这里忽略了很多电路细节和器件特性)。为便于使用,科学家们使用符号将这三个逻辑门进行了抽象:
为便于使用,我们将其进一步抽象,如下图所示:
从数学上来说,所有复杂的逻辑式最终都可以分解为最基本的三个逻辑组合,我们先温习一下高中的代数课:
那在电路上,是不是就可以使用与、或、非这三个基本的逻辑门电路来分解?
三、从逻辑运算到电路运算
以加法为例
下图是二进制加法的真值表,S是A+B,C是进位。
科学家们使用逻辑式来总结了这个真值表,从真值表到逻辑式的转化是高中代数的基本内容。
我们发现,S和C的输出可以由A与B的逻辑运算得到(一个异或门、一个与门)。那么,如果我们使用逻辑电路来实现逻辑运算,是不是就可以用电路来实现加法?
第一步,我们先用逻辑符号来绘制上述的公式:
第二步,将逻辑符号转为电路(没找到半加器电路,这个是全加器):
第三步,焊接物理电路
逻辑叠加
通过加法的例子我们实现了从逻辑到电路的转变,根据这个原理我们可以简单的实现:
1)减法器
2)乘法器
3)除法器
4)8位加法器
实际上我们发现所有的运算都是逻辑的叠加,逻辑最终可以转化为电路,所以我们可以得出结论:所有的运算最终都可以使用电路实现。
四、从电子电路到集成电路
庞大的电子计算机
前面的内容,我们知道了所有逻辑运算都可以使用电路实现,那么加法器、减法器、乘法器、除法器都是可以实现的,事实上一开始的“计算机”就是用于做这些加减乘除运算。使用逻辑门的好处显而易见,所有逻辑叠加问题都可以用电路的“叠加”来解决,无论是10位的加法、100位的减法、还是1000位的乘法,理论上来说只要二极管、三极管、电容电阻足够我们都可以实现。但是随着计算需求越来越大,计算器的体积变得越来越大,“耗电”成了一个大问题。下图是第一台通用计算机ENIAC,它可以每秒5000次加法或400次乘法运算,但是它使用了17,468根真空管(电子管)7,200根晶体二极管,1,500个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关。抛开成本因素,光耗电量就是一个天文数字。
MOS管与集成电路
体积庞大、造价高昂、耗电量成为制约计算机的核心问题所在,如果有办法缩小元器件的体积,体积、造价、耗电的问题都迎刃而解了。在这个需求的基础上集成电路诞生了,它不是使用电路将各种元器件连接起来,而是将各种元器件、线路直接“做”到了硅片上。
下图是一个典型的PNP三极管示意图,本质上P与N的材质是一样的(硅),只是掺杂了不同的杂质改变了其电特性(二极管、三极管就是这么制造的)。所以有没有办法在一片硅上面按需求“做”出P结、N结,而后用“线路”将各P结和N结连接成电路,只要前期规划做好,数量庞大的三极管、二极管、线路就可以集成到一个硅片上了。
mos管是金属(metal)、氧化物(oxide)、半导体(semiconductor)场效应晶体管,名字复杂其实本质就是由金属、氧化物、半导体组成的元器件。前面说到要将三极管、二极管、线路集成到硅片上,其中MOS管中的“半导体”就是P结或N结,用来组成三极管或二极管。“金属”就是连接各结的线路,“氧化物”就是各结间用以绝缘的隔离层。简单点说,集成电路就是在硅片上制造了很多的半导体(PN结)、金属(线路)、氧化物(绝缘层),这些半导体、金属、氧化物组成的器件我们称之为MOS管,无数MOS管按逻辑电路进行组合就是所谓的集成电路了。
集成电路工艺
现在我们找到了办法将器件缩小,下一步就是如何实现PN结、金属线路、氧化物。下图是一个典型的PNP晶体管剖面示意图
在工艺上要做成这样需要很多步骤,大概有:
1)切割:将工厂生产的硅锭切割成片
2)影印:在硅片上涂一层光阻物质(想象成防护膜),然后按设计要求溶解部分光阻物质(让部分区域露出来)。工艺上是在紫外灯上面加一层有很多孔的遮罩,被紫外灯照射的光阻物质就溶解了,没有照射的地方还有保护。如下图所示,通过影印将部分光阻清除,露出部分硅片。
3)刻蚀:露出该露的、遮住该遮的部分后,就使用刻蚀技术将没被遮住的区域“蚀”出一个沟,如下图所示。
4)掺杂:有了沟之后就使用原子轰击这个“沟”使其掺入杂质形成P型衬底
5)沉积:接着在P型衬底上沉积一层N型硅
就这样反复影印、刻蚀、掺杂、沉积就得到了我们需要的MOS管。
五、从集成电路到CPU
我们将一块晶圆上制作了大量MOS管的叫集成电路,MOS管特别多的叫大规模集成电路,MOS管超级超级多的叫超大规模集成电路,其实就是工艺进步了。一块芯片上集成的电子器件越多、电路越复杂能实现的功能也就越多,所以我们不能只满足于做加减乘除这样简单的运算。但当时的科学家并没有“未来”的视野,他们当时急需的问题不是发明CPU,而是解决数据如何存储的问题。如果数据可以存储在电路里,那就可以实现很多复杂的操作,比如简单的编程。
D触发器
为了将数据“锁”在电路里,科学家们使用逻辑门组成了D触发器。其中CP是时钟控制信号(这里将其当做一个控制信号即可),当CP值为1时D输入一个信号则Q输出同样的信号,当CP值不为1时D输入任何信号则Q输出不变,如此就实现了将D信号“锁”在了Q。
寄存器
数个D触发器的组合就实现了一个寄存器,如下图所示就是一个4位寄存器,可以存储一个4位的数据,如“0101”:
根据寄存器的工作内容又细分了:指令寄存器、程序计数器、地址寄存器、通用寄存器等等。
运算器
将数个寄存器与前面所说的加、减、乘、除计算电路结合起来就是运算器了,运算器的作用就是对寄存器(一个或多个)中的内容进行算数计算,而后将结果存入寄存器。
控制器
上图可以看到,运算器内有数个寄存器,那何时执行计算任务、计算那几个寄存器的数据、最终存储到哪里呢,这些都由控制器来完成。控制器由指令寄存器、指令译码器、程序计数器、堆栈指针、数据指针组成,它从指令寄存器中获取指令而后根据指令从外部存储中获取数据、控制运算器执行运算、获取下一步指令等等。这一且都是通过“时钟控制信号”和复杂的逻辑运算实现的。
对于时钟控制信号,可以理解为一个节拍器,时钟源向CPU发送有节奏的高低电平信号,让控制器内部逻辑电路被激活,该逻辑电路又根据指令寄存器的内容生成各种控制信号指挥运算器读取数据、执行运算、读取下一步指令、存储计算结果等等。下图就是一个完整的控制器与运算器的示意。
存储器
存储器又叫高速缓冲存储器,它的作用就是存储即将交付CPU处理的数据并保存CPU处理的结果。实际上各种控制信号、数据都是放置于存储器中,控制器从这里获取下一步的数据和指令。
CPU
存储器、控制器、运算器的结合就是一个基本的CPU了,等等?似乎CPU没有什么特殊的功能啊,那它是如何执行这么多复杂工作的呢?实际上CPU的原理就是这么简单。当我们写好代码后,编译器就将这些代码翻译成CPU可以识别的数据格式,而后按顺序放入存储器中即可,控制器会根据预设的程序按节奏从存储器中获取指令和数据,控制运算器处理这些数据,最终实现代码功能。
六、CPU运作示例
为便于理解其工作原理,我们做一个简单的示例。比如我们写了一段代码:
A=1;
B=2;
C=A+B;
输出C到屏幕
编译器编译时可能会做如下翻译:
1)将0001放入寄存器A、将0010放入寄存器B
2)执行寄存器A+寄存器B,结果放入寄存器C
3)读取屏幕显示器的存储地址,放入寄存器E
4)根据寄存器E的数据(屏幕显示器地址),将寄存器C的数据(运算结果)写入该存储地址
至此CPU就实现了一个简单的计算和屏幕显示。当然具体操作过程可能会比这个复杂无数倍。但是CPU的核心功能就是简单的算数运算,以及各种数据的读写。而编译器的工作就是将复杂的代码翻译成简单的算数运算和数据存储、数据移动。
运筹学是一门应用科学,它广泛地运用现有的科学技术知识和数学方法,解决实际中提出的专门问题,为决策者选择最优决策提供定量依据。系统工程是一种设计、规划、建立一个最优化系统的科学方法,是一种为了有效地运用系统而采取的各种组织管理技术的总称。运筹学为系统工程奠定了重要的理论基础,提供了解决实际问题的有效方法。信息管理作为一个系统工程,无疑与运筹学有着极为密切的关系。因此,探讨运筹学与信息管理的关系显得尤为重要,为运筹学与信息管理的合作与交融起到了不可低估的作用。
一、运筹学的发展
Operation Research原来的意思是操作、作业、运用、作战等的研究,译作运筹学,来源于《史记》“运筹于帷幄之中,决胜于千里之外”一语中“运筹”二字,既显示其军事的起源,也表明它在我国已早有萌芽。运筹学是一门应用科学,是应用分析、试验、量化的方法,它使用许多数学工具(包括概率统计、数理分析、线性代数等)和逻辑判断方法,来研究系统中人、财、物的组织管理、筹划调度等问题。它对管理系统中人力、物力、财力等资源进行统筹安排,为决策者提供有依据的最优方案,以期发挥最大效益。作为一门非常实用的学科,它在经济建设和管理中的前景是非常辉煌的。运筹学的思想方法在我国古代就有过不少的记载。如田忌赛马、沈括运军粮的故事就充分说明了,我国在早期不仅有过朴素的运筹思想,同时也在生产实践中实际运用了运筹方法。但运筹学作为一门新兴的学科是在第二次世界大战期间出现的,当时主要是用来解决复杂的战略和战术问题。二战之后,从事这项工作的许多专家转到了经济部门、民用企业、大学或研究所,继续从事决策的数量方法的研究,运筹学作为一门学科逐步形成并得以迅速发展。战后的运筹学主要在一下两方面得到了发展,其一为运筹学的方法论,形成了运筹的许多分支,如数学规划(线性规划、非线性规划、整数规划、目标规划、动态规划、随机规划等)、图论与网络、排队论、存储论、维修更新理论、搜索论、可靠性和质量管理等。1947年由Geroge Dantgigtichu 的求解线性规划问题的单纯形法是运筹学发展史上最重大的进展之一。其二是由于电子计算机尤其是微机迅猛地发展和广泛地应用,使得运筹学的方法论能成功地即时地解决大量经济管理中的决策问题。世界上不少国家已成立了致力于该领域及相关活动的专门学会,美国于1952年成立了运筹学会,并出版期刊《运筹学》,世界其他国家也先后创办了运筹学会与期刊,1957 年成立了国际运筹学协会。作为管理五大职能之一的决策过程,往往是通过定性或定量的方法来进行。为了提高管理者的决策能力,可以通过管理者的实践和经验的积累,不断提高其定性分析的能力。而其定量分析能力的提高则需要学习管理运筹学的思想与方法,管理者掌握了管理运筹学,并了解了管理运筹学在决策过程中的重要地位,这将对提高其决策的能力水平有极大的帮助。运筹学在管理中的应用,可以从两个方面来观察。一是运筹学的应用所涉及的方面;二是以企业实际使用的频率来看运筹学的应用情况。
二、运筹学与管理信息系统的联系
运筹学的专家们认为,管理信息系统的发展是促进运筹学发展的一个新的机会。从狭义上看,管理信息系统是一个运行系统,而运筹学主要面对运行系统,所以这种发展存在着可能性。管理信息系统的专家们认为,运筹学将成为推动管理信息系统的发展,并使其成为一门学科的基础理论,与运筹学的结合将大大有助管理信息系统科学化的过程:
第一,面向企业的战术执行层,如生产调度、供应与销售、财务管理、人力资源管理等。第二,以信息为运作对象,包括信息的收集、存储、加工、传输和使用。第三,是企业功能系统的一个映射,是由计算机硬件、软件、数据库及其管理系统、工作规程和操作人员组成的一个系统。
上述三点包含了管理、信息、系统三个要素,说明管理信息系统有三个理论支柱,即:管理科学、信息科学与技术及系统理论。
三、策论在信息管理中的应用举例
有两个信息服务部门:一个是新兴的、思想意识先进、具有开拓精神的一群人组成。我们称之为局中人1,另一个则是具有悠久历史、基础较好、有较好的固定投资的部门,我们称为局中人2。这两个部门都想开拓市场,为本地区1000家企事业单位提供信息服务。他们可以分别采用电话联系、登门拜访、网上联系这三个策略,而这三个策略又不能同时采用。且这1000家企事业单位只能接受一个局中人的信息服务,不能同时接受两个。我们把策略1代表电话联系,策略2代表登门拜访,策略3代表网上联系,则支付矩阵是:
在这里矩阵中的数字表示局中人的支付数目。比如局中人1采用第1种策略,局中人2采用第1种策略,矩阵的值a11=0,则表示局中人1和局中人2取得的信息服务用户相同。局中人1采用第1种策略,局中人2采用第2种策略,矩阵的值a12=-500表示局中人2比局中人1多拥有500个信息服务用户。以此类推。如果有n个信息服务部门,则是非合作n人对策,模型要复杂得多,在此不赘述。对策论的引入,是要提醒各信息服务部门抓住机遇,选好策略,抢占市场,否则就没有立足之地。
四、排队论在信息管理中的应用举例
某图书馆有读者5000,日来馆借书在100-300人次之间。该馆图书实行开架借阅。设置100个代书板,每人限拿一个代书板借书。则库内最多人数限为100名读者。每人平均在库内逗留时间为10分钟。则该馆日容纳读者量为100×60÷10×8=4800。就是说该图书馆基本上能满足全校读者同日到馆的情况。也就是说即使在人流最多的时候,也能满足接待任务。在这里100个代书板相当于100个排队系统。每个10分钟的逗留时间相当于服务时间的分布,也就是服务速度。这表明每10分钟该馆平均可接待读者100名。而每日读者来馆的人数只有100-300名。可见该馆读者稀少。造成资源闲置浪费。因此该馆应广开门路,吸引更多的读者。而该馆的还书口只有1人,设平均每分钟接待1名读者,则该馆日接待还书读者量为1×60×8=480。虽然该馆日还书接待能力只有借书接待能力的1/10,且读者的到馆时间也经常很集中,但从用户到馆的速度(A=10060×8-30060×8)和服务的速度(S=1)来看,S>A,服务设施可有1-AS的空闲时间。所以暂时还不需要增加还书设备和人力。
总之,运筹学是运用科学的数量方法,研究对有限的人、财、物、时、空、信息等资源进行合理筹划和运用,寻找管理及决策最优化的综合性学科。随着国民经济的发展,科学技术的飞跃,运筹学也不断的发展完善成为近代应用数学的一个重要分支,主要是将信息管理、管理信息系统等事件中出现的一些带有普遍性的运筹问题加以提炼,然后利用数学方法进行解决。运筹学将为决策者提供定量、定性分析结果,有助作出全局优化决策。
参考文献
[1]车济炎,林德宏.新知识词典[M].南京:南京大学出版社,1987