第一台计算机是在1946年产生的。无论是机器语言时期还是汇编语言时期,早期的程序设计始终是一项非常讲究技巧的工作,使用的是面向计算机的程序设计方法。这种设计方法注重机器,功能简单,使用周期短且界面不友好。63776
1968年,国际著名学者Dijkstra指出了对GOTO语句的质疑,最先提出了结构化设计的思想。面向结构的程序设计方法采用的是自顶向下、逐步求精的思想,设计人员先将一个总的问题分解成几个独立模块,然后对这些独立模块进行再分解,直至每一子模块可以明确地完成特定功能为止。通用性强,编程效率高,可靠性好,可维护性改善。这种设计方法将数据和操作分开对待,程序设计人员在编程时不仅要考虑如何分解功能,实现功能,还要考虑操作所对应的数据,而且一旦数据改变了,操作也要跟着变,以致编程很不方便[6] [7]。
硬件技术水平的提高造成了软件开发技术的巨大挑战,传统的设计思想和设计方法越来越跟不上设计需求的步伐,面向对象的程序设计方法(简称OOP法)由此产生。最早的面向对象语言是Simula67语言,最纯正的面向对象语言则是smalltalk-80。面向对象设计方法将客观世界看成是对象的组合体,每个对象都有自己的属性和行为。它将数据和对数据进行的操作结合在一起,十分符合人的思维[8]。具有多态性,继承性和封装性。可维护性好,重用性强,已经成为一种非常受欢迎的软件设计方法。论文网
设计用户界面可以使用JAVA、QT、MFC等。这三种都是面向对象的程序设计,但是又有所不同。JAVA与QT都是跨平台的用户界面应用程序框架,JAVA程序只能在虚拟机环境下运行,多线程设计复杂,更加适合网站设计,其速度也比不上QT和MFC。QT最早由奇趣科技开发产生,这是一种艺术级用户界面,其开发速度略低于MFC,可用的开发工具较少且较专业,第三方库不如MFC多。本控制软件选择采用MFC设计出一个系统控制界面,人机友好,操作方便,编程效率高。
以太网通信的编程方式有很多,比如使用socket套接字,WinPcap开发库等。Socket技术来自于美国。20世纪80年代,加州大学开发出了Berkeley Socket,这是一种UNIX操作系统下实现TCP/IP协议的应用程序接口。随着Windows的迅速发展,Windows Sockets产生[9]。这种规范支持消息驱动和多种协议,且具有开放性。套接字提供了一个通信接口,可以完成消息发送与接收。
WinPcap是一种不错的网络分析工具库,可以发送、接收、过滤数据等,也可以统计网络流量。与socket相比,它可以绕过协议栈捕获和发送数据,而socket是通过操作系统原件访问网络的。WinPcap可移植、平台多样、性能高[10]。
本设计中,由于FPGA的限制不能使用TCP/IP协议,只能使用MAC地址。socket不支持MAC地址通信,而WinPcap不需要协议,可以捕获原始数据包,所以设计时选择了WinPcap这一高效方便的网络分析库。