硬件模塊設計思想

硬件模塊設計">模塊設計,顧名思義就是將各個不同的功能做成獨立的模塊。然后將各個模塊組合成不同的產品。

對于一個公司硬件模塊化設計,從設計之初,調試,到樣機及產品生產的過程應該是這樣:

1.     了解產品需求

2.     根據需求,選擇合適的處理器

3.     根據處理器構架系統結構

4.     設計處理器的最小系統圖,包括電源,晶振,不使用需要簡單處理的引腳處理,將需要使用的引腳引出。

5.     選擇和合適的成熟模塊連接。

6.     與各個模塊共同搭建一個開發平臺。

7.     開發程序,調試。

8.     軟件調試完畢,硬件功能完好。開始針對產品要求的體積,外形等進行修改,重新構建繪制原理圖,pcb

9.     將程序下載到新的pcb中,進行必要的修改后,可以進行試驗

10.   試驗后根據情況再次進行修改。

11.   再次試驗。

12.   沒有問題后進行生產。

如果是單純的生產一款產品,那么對于上述的4,5,6來講沒有必要這樣做,這里的硬件模塊化是針對公司的一個系列產品的設計進行構思的。

對于一個系列的產品,產品的功能有很多相似之處,往往高級的產品會比低級的產品多些功能,這樣的話,這一系列的產品的有很多模塊就是這一系列產品的特征,必須具有的,就像電話,一般都會具有接聽,打出電話,發送,接收短消息這兩個基本特征。但是這并不是說低級的產品是高級產品的子集,低級的產品功能有些也是高級產品所沒有的。

為什么機械產品和電子器件的生產和使用及更換,在現在看來都很方便呢?很重要的一個問題就是大家在制作的時候都會遵循一個共同的標準。汽車出現了問題,我們不會重新將汽車生產一次,而是更換零件;汽車的升級換代,不是重新研發,而是現有基礎上的改進和提高;即使是革命性的變化也不會將現有和以前的東西完全拋棄。

同樣的道理一個板子上的芯片壞了,不是要換掉整個板子,而是將芯片換掉。

?

那么對于系列產品的開發,怎樣才能方便的進行新產品初期的設計,調試,老產品的功能升級設計和調設呢?
?
待續。大家可以留言補充
我們接著上篇提出的問題繼續討論.
?
    現在大家對軟件的模塊設計">模塊設計很熟悉 ,就是將軟件的功能細分,然后做成一個獨立的模塊,不管用在哪里,只要告訴使用者接口和功能,就能很方便的使用.如果需要對函數進行變動的話也很簡單,直接對函數本身做改動就可以了,只要接口和功能沒有變化,而不會對函數的調用者有任何影響.即使對函數的接口有小的變化,如果能在開始設計的時候能預留的設計,那么也對整個函數的使用都不會產生很大的影響.
   
    對于同系列產品的硬件設計而言,變化的莫過于兩個方面,功能模塊 主cpu.
   1 功能模塊的變化包括:功能模塊的增加或者減少,功能模塊自身的修改
   2 由于不同的考慮在實現同樣功能的前提下進行主cpu的更替.
?
    對于各種功能集成在一起的硬件設計來說,這兩種情況都會導致板子的原理圖和pcb的重新繪制,對于沒有改變的模塊部分都要重新繪制pcb,對于修改的部分也不能依靠原來的硬件進行驗證,這樣導致了資源和時間的浪費,為什么這樣說?
?
    對于同樣功能的模塊,沒有重復利用,浪費了資源;對于同樣功能的模塊還需要花費重復繪制pcb是時間的浪費;更嚴重的時間浪費是不能利用現有的模塊和資源對改變的部分進行較快的前期驗證.舉個例子,假設一個板子的功能由A+B+C+D+E組成,如果需要改變A,將A改成F,對于模塊集成的設計方法來說,就要將重新繪制將原來的板子改成B+C+D+E+F,然后做成試驗板,然后進行功能驗證和調試,;如果我們能只是將A換成F,然后F在B+C+D+E資源的基礎上進行調試的話就會減少設計的工作量,節省設計的時間,充分的利用了現有的資源,同時這種做法非常有利于調試,因為對于成熟模塊來說,設計成熟,經過驗證,在調試的時候可以盡快的排除,找到真正的問題.
?
    對了,我說清楚一點,就是功能集成的意思我是指,將一個系統各種功能的實現在一塊或者兩塊pcb板上的那種做法,至少一塊板上存在3,4中模塊的那種.
?
    當然,對于硬件設計來講,如果每一個模塊都要獨立設計,然后再連成一起,這樣也未免太過,系統連接的插頭越多,系統的可靠性就會越降低.就像電腦中的一級緩存和速度的關系,加大的一級緩存的確可以增加電腦的運行速度,但是一級緩存和速度的關系并非成正比,到某一個點上,加多一級緩存對速度的提高已經沒有什么作用了,反而增加了系統的成本,只有達到緩存和速度的最佳比例時,才能將性價比調到最高.
?
    對于硬件模塊設計">模塊設計,我想也是這樣,不一定要把每個模塊都要獨立設計,適當的進行功能模塊的劃分,將相似的部分劃在一起,這樣減少模塊之間連接,也提高了系統的可靠性,同時提高的系統的模塊化程度,為重復利用資源和節約設計周期提供了方便.
?
    盡管模塊化的設計有很多好處,我的觀點是,硬件模塊化設計的方法,我覺得非常適合產品的研發階段和模塊很多的產品也適合生產階段.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451442.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java中的lastIndexOf( )函數是什么意思

int x a.lastIndexOf(b),表示b字符串在a字符串中最后出現的位置。如 a "abcdabcd";b"d";那么x的值為7.

2 分鐘讀懂大數據框架 Hadoop 和 Spark 的異同

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 談到大數據,相信大家對Hadoop和Apache Spark這兩個名字并不陌生。但我們往往對它們的理解只是提留在字面上,并沒有…

操作系統文件編程知識

文件的創建和讀寫 當我們需要打開一個文件進行讀寫操作的時候&#xff0c;我們可以使用系統調用函數open。使用完成以后我們調用另外一個close函數進行關閉操作。 該函數使用的頭文件如下&#xff1a; #include <fcntl.h> #include <unistd.h> #include <sys/ty…

論述HTML5平臺的若干重要特性

開發者已憑借網頁技術制作出創收豐厚的游戲作品許多年&#xff1a;《部落戰爭》憑借靜態網頁頁面大獲成功&#xff0c;《Farmville》憑借Flash開拓出新的疆域。但如今越來越多人覺得&#xff0c;未來HTML5將變成游戲的主要平臺。為什么HTML5如此頗具趣味&#xff0c;它是否真的…

多GPU使用詳解

目錄&#xff1a; 介紹 記錄設備狀態 手動分配狀態 允許GPU內存增長 在多GPU系統是使用單個GPU 使用多個 GPU 一、介紹 在一個典型的系統中&#xff0c;有多個計算設備。在 TensorFlow 中支持的設備類型包括 CPU 和 GPU。他們用字符串來表達&#xff0c;例如&#xff1a; “/cp…

圖片上傳的兩種方式

總的說圖片上傳有兩種方式&#xff0c;一種是把圖片文件寫到數據庫中&#xff0c;另一種是存到服務器文件目錄中。寫到數據庫中的圖片文件需要轉換成二進制流的格式&#xff0c;占用數據庫空間比較多&#xff0c;適合少量圖片的存儲&#xff0c;比如說&#xff0c;系統中某些小…

最好理解的: spring ioc原理講解,強烈推薦!

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 IOC&#xff08;DI&#xff09;&#xff1a;java程序中的每個業務邏輯至少需要兩個或以上的對象來協作完成。通常&#xff0c;每個對象在…

微信小程序 - 回到自己位置(map)

演示效果&#xff1a; 圖片資源 index.js 1 /** 2 * 回到自己位置&#xff0c;在cover-image上綁定點擊事件即可. 3 */ 4 clickcontrol(e) { 5 let mpCtx wx.createMapContext("map"); 6 mpCtx.moveToLocation(); 7 }, 轉載于:https://www.cnbl…

uwsgi搭配nginx

uwsgi搭配nginx可以做域名解析和負載均衡uWSGI&#xff0c;既不用wsgi協議也不用fcgi協議&#xff0c;而是自創了一個uwsgi的協議&#xff0c;據說該協議大約是fcgi協議的10倍那么快。uWSGI的主要特點如下&#xff1a;◆超快的性能。◆低內存占用&#xff08;實測為apache2的mo…

如何讓tomcat服務器運行在80端口,并且無需輸入項目名即可訪問項目()

這個問題最開始遇到的時候是半年前,自己買了個服務器玩,但是域名解析的時候出了問題,我查了查資料才知道騰訊云是默認解析到80端口,而且還改不了. 首先是修改tomcat運行端口號,默認是8080,但是我們可以通過修改配置文件更改, 打開conf/server.xml文件找到這個地方,: 將8080改為…

tailf、tail -f、tail -F三者區別

tail -f 等同于--followdescriptor&#xff0c;根據文件描述符進行追蹤&#xff0c;當文件改名或被刪除&#xff0c;追蹤停止 tail -F 等同于--followname --retry&#xff0c;根據文件名進行追蹤&#xff0c;并保持重試&#xff0c;即該文件被刪除或改名后&#xff…

使用圖形芯片加速電子自動化設計應用程序

以往EDA應用性能瓶頸主要受兩方面因素制約&#xff0c;首先大多數應用都是單線程的&#xff0c;而CPU和GPU架構擁有幾十到數千的并行內核&#xff0c;其次是應用程序內存延遲問題。目前EDA應用已經部署到傳統的常規處理器上。最重要的是這些應用促使人們設計出并行或向量處理器…

自我介紹的四個套路

四套路內容&#xff1a; 1、我是誰&#xff0c;叫什么名字&#xff0c;我從哪里來。 2、我因為什么機緣出現這個場合。 3、我能給大家帶來什么價值。 4、我希望能夠得到大家的什么幫助。 示例&#xff1a; 大家好&#xff0c;我叫XXX&#xff0c; 聽說今天會有幾個高人在場&…

加載樣式js

var MaskUtil (function(){ var $mask,$maskMsg; var defMsg 數據導出中&#xff0c;請稍待。。。; function init(){ if(!$mask){ $mask $("<div class\"datagrid-mask mymask\"></div>").appendTo("body"); } if(!$mask…

flush privileges

flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存里。MySQL用戶數據和權限有修改后&#xff0c;希望在"不重啟MySQL服務"的情況下直接生效&#xff0c;那么就需要執行這個命令。通常是在…

【Linux】Linux中常用操作命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 常用指令 ls   顯示文件或目錄 -l 列出文件詳細信息l(list) -a 列出當前目錄下所有文件及目錄&#xff0…

Mybatis的緩存機制Cache

Mybatis提供對緩存的支持&#xff0c;分為一級緩存和二級緩存&#xff0c;在沒有配置的情況下&#xff0c;系統默認會使用一級緩存。 一級緩存&#xff08;SqlSession級別&#xff09; 我們都知道每個SqlSession對象之間的緩存是互不影響的&#xff0c;當同一個SqlSession執行多…

大數據應用時代來襲 SaaS走向沒落?

隨著大量的信息涌入互聯網——90%的互聯網是過去兩年建立起來的——互聯網公司正在想方設法去熟悉并利用大數據來推動他們的業務。正如SaaS和云技術一樣完全變革了企業的運作方式一樣&#xff0c;大數據應用&#xff08;BDA&#xff09;也同樣可以。 BDA是基于網絡的應用&#…

為什么使用數據庫從庫

主庫用來進行寫操作&#xff0c;從庫用來進行讀操作&#xff0c;這樣一來的可以大大提高讀取的效率。在一般的互聯網應用中&#xff0c;經過一些數據調查得出結論&#xff0c;讀/寫的比例大概在 10&#xff1a;1左右 &#xff0c;也就是說大量的數據操作是集中在讀的操作。但是…

Java程序員必知的10個調試技巧

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在本文中&#xff0c;作者將使用大家常用的的開發工具Eclipse來調試Java應用程序。但這里介紹的調試方法基本都是通用的&#xff0c;也適…