基于ARM的CAN網絡打印服務器設計
發布時間:2008/8/16 0:00:00 訪問次數:456
1 引言
隨著科學技術水平的提高,智能儀器儀表或微機裝置等智能電子設備(ied)已廣泛應用于工業現場。
網絡打印服務器(network print server)可為智能電子設備提供可靠的共享打印服務,節約系統成本。can總線是一種支持分布或實時控制的現場總線,具有高可靠性、實時性和靈活性,廣泛應用于汽車控制、工業控制、機器人、家用電器等領域。can總線已成為工業現場首選現場總線之一。設計的網絡打印服務器采用can總線作為數據通訊網絡,每個網絡打印服務器可與幾十甚至上百個智能電子設備構成總線型網絡,采用屏蔽雙絞線作為通訊介質減少節點干擾。通訊速率在10 kb/s~1 mb/s范圍內可選。
2 系統硬件設計
網絡打印服務器的核心處理器采用philips公司的lpc2129。lpc2129是一款支持實時仿真和跟蹤的16/32位arm7tdmi-s cpu“微控制器”,帶有256 kb的嵌入式高速flash存儲器,16 kb支持8/16/32位訪問的靜態ram,128位寬度的存儲器接口和獨特的加速結構,可使32位代碼在最大時鐘速率下運行。而對代碼有嚴格控制要求的應用則可使用16位thumb模式。lpc2129采用64引腳封裝,低功耗,內帶有46個gpio,2個32位定時器,2路can控制器,多路串行接口,9路外部中斷。選取該處理器主要考慮其內部資源豐富,無需擴展存儲器、can控制器,且性能優異,抗干擾能力強;價格低廉,具有極高的性價比。
系統硬件電路設計框圖如圖2所示。調試接口直接與lpc2129連接,用于調試開發;由max232-epe等器件構成的串口電路用于程序下載;看門狗負責監控程序是否出現異常或跑飛,若出現故障時,看門狗使整個系統復位;而電源電路由sp220-15d5d和dup75-05s05等器件構成,為網絡打印服務器提供工作電源。
網絡打印機服務器的核心電路是can及打印機接口電路,如圖3所示。打印機接口電路部分由光耦ps2701和電容電阻等元件構成,lpc2129的p0和p1端口引腳經該接口電路與針式打印機連接,實現打印功能;can總線接口電路由6n137和pca82-c250等器件構成,lpc2129內部can控制器完成can協議處理,pca82-c250可提高節點的驅動能力。為了增強can總線節點的抗干擾能力,lpc2129的cntx和cnrx不能直接與pca82c250的txd和rxd相連,應經高速光耦6n137后再與pca82c250相連,從而實現總線上各can節點間的電氣隔離。高速光耦電路中的電源vcc和vdd必須完全隔離,采用隔離型電源模塊dup75-05s05實現隔離。pca82c250與can總線的接口部分也采取了抗干擾措施,canh和canl與地之間分別并聯一只1 000 pf/2 kv的電容,用于濾除總線上的高頻干擾,并具有一定的抗電磁輻射性能。另外,在can總線接人端與地之間連接一個瞬態電壓抑制二極管(tvs),保護pca82c250免受esd和emi浪涌脈沖。通訊信號傳輸到導線的端點時產生反射,并干擾正常信號傳輸,在pca82c250的兩根輸出數據線之間接一120 ω的終端電阻可抑制反射信號。若忽略該終端電阻,則大大降低通訊的抗干擾性和可靠性,甚至導致無法通訊。
3 系統軟件設計
網絡打印服務器與各個智能電子設備之間采用主從方式,通過查詢完成工作。軟件主要由網絡打印服務主程序、can驅動程序、打印接口驅動程序、定時器中斷程序以及lpc2129啟動程序組成。
lpc2129啟動程序采用匯編語言編寫,主要包括異常中斷向量表、堆棧初始化、目標板初始化、存儲系統初始化等。定時器中斷程序是定時器0的中斷處理程序,用于完成各種定時或延時功能,為打印和can通訊提供必要支持。打印接口驅動程序包括打印初始化和發送打印數據。打印初始化程序用于設置arm的p0和p1端口部分引腳的工作方式,初始化打印機。發送打印數據程序首先檢測打印機是否忙,若打印機忙則等待,若空閑則發送要打印的數據。然后選通打印機,最后回收打印機,即不選通并將數據寄存器置位。
can驅動程序主要包括初始化can控制器、發送報文和接收報文。初始化can控制器主要包括設置相應引腳功能、工作方式、波特率參數以及出錯警告界限等。
lpc2129中有全局驗收濾波器,該模塊可為can控制器提供接收標識符的查詢功能(驗收濾波)。另外,驗收濾波器為選擇的標準標識符提供了fulican-style自動接收功能。在初始化can控制器中將驗收濾波器設置為旁路,也可以根據實際需要進行設置,讓其參與接收濾波的工作,有助于改善節點接收信息的選擇性。完成初始化can控制器后,即可發送和接收報文信息。
發送報文驅動程序主要實現報文發送,發送報文流程如圖4所示。發送報文時。將待發送的數據打包成符合can發送幀格式的數據送人can控制器的發送緩存區。在向發送緩沖區送報文之前,必須判斷發送緩沖區是否空閑。若發送緩沖區繁忙則返回失敗;若空閑則將數據寫人發送緩沖區,寫入完成后再判斷寫入是否成功,寫入成功后啟動發送命令,發送緩沖區中的數據,然后返回狀態標志。
接收驅動程序主要完成報文接收以及其
1 引言
隨著科學技術水平的提高,智能儀器儀表或微機裝置等智能電子設備(ied)已廣泛應用于工業現場。
網絡打印服務器(network print server)可為智能電子設備提供可靠的共享打印服務,節約系統成本。can總線是一種支持分布或實時控制的現場總線,具有高可靠性、實時性和靈活性,廣泛應用于汽車控制、工業控制、機器人、家用電器等領域。can總線已成為工業現場首選現場總線之一。設計的網絡打印服務器采用can總線作為數據通訊網絡,每個網絡打印服務器可與幾十甚至上百個智能電子設備構成總線型網絡,采用屏蔽雙絞線作為通訊介質減少節點干擾。通訊速率在10 kb/s~1 mb/s范圍內可選。
2 系統硬件設計
網絡打印服務器的核心處理器采用philips公司的lpc2129。lpc2129是一款支持實時仿真和跟蹤的16/32位arm7tdmi-s cpu“微控制器”,帶有256 kb的嵌入式高速flash存儲器,16 kb支持8/16/32位訪問的靜態ram,128位寬度的存儲器接口和獨特的加速結構,可使32位代碼在最大時鐘速率下運行。而對代碼有嚴格控制要求的應用則可使用16位thumb模式。lpc2129采用64引腳封裝,低功耗,內帶有46個gpio,2個32位定時器,2路can控制器,多路串行接口,9路外部中斷。選取該處理器主要考慮其內部資源豐富,無需擴展存儲器、can控制器,且性能優異,抗干擾能力強;價格低廉,具有極高的性價比。
系統硬件電路設計框圖如圖2所示。調試接口直接與lpc2129連接,用于調試開發;由max232-epe等器件構成的串口電路用于程序下載;看門狗負責監控程序是否出現異常或跑飛,若出現故障時,看門狗使整個系統復位;而電源電路由sp220-15d5d和dup75-05s05等器件構成,為網絡打印服務器提供工作電源。
網絡打印機服務器的核心電路是can及打印機接口電路,如圖3所示。打印機接口電路部分由光耦ps2701和電容電阻等元件構成,lpc2129的p0和p1端口引腳經該接口電路與針式打印機連接,實現打印功能;can總線接口電路由6n137和pca82-c250等器件構成,lpc2129內部can控制器完成can協議處理,pca82-c250可提高節點的驅動能力。為了增強can總線節點的抗干擾能力,lpc2129的cntx和cnrx不能直接與pca82c250的txd和rxd相連,應經高速光耦6n137后再與pca82c250相連,從而實現總線上各can節點間的電氣隔離。高速光耦電路中的電源vcc和vdd必須完全隔離,采用隔離型電源模塊dup75-05s05實現隔離。pca82c250與can總線的接口部分也采取了抗干擾措施,canh和canl與地之間分別并聯一只1 000 pf/2 kv的電容,用于濾除總線上的高頻干擾,并具有一定的抗電磁輻射性能。另外,在can總線接人端與地之間連接一個瞬態電壓抑制二極管(tvs),保護pca82c250免受esd和emi浪涌脈沖。通訊信號傳輸到導線的端點時產生反射,并干擾正常信號傳輸,在pca82c250的兩根輸出數據線之間接一120 ω的終端電阻可抑制反射信號。若忽略該終端電阻,則大大降低通訊的抗干擾性和可靠性,甚至導致無法通訊。
3 系統軟件設計
網絡打印服務器與各個智能電子設備之間采用主從方式,通過查詢完成工作。軟件主要由網絡打印服務主程序、can驅動程序、打印接口驅動程序、定時器中斷程序以及lpc2129啟動程序組成。
lpc2129啟動程序采用匯編語言編寫,主要包括異常中斷向量表、堆棧初始化、目標板初始化、存儲系統初始化等。定時器中斷程序是定時器0的中斷處理程序,用于完成各種定時或延時功能,為打印和can通訊提供必要支持。打印接口驅動程序包括打印初始化和發送打印數據。打印初始化程序用于設置arm的p0和p1端口部分引腳的工作方式,初始化打印機。發送打印數據程序首先檢測打印機是否忙,若打印機忙則等待,若空閑則發送要打印的數據。然后選通打印機,最后回收打印機,即不選通并將數據寄存器置位。
can驅動程序主要包括初始化can控制器、發送報文和接收報文。初始化can控制器主要包括設置相應引腳功能、工作方式、波特率參數以及出錯警告界限等。
lpc2129中有全局驗收濾波器,該模塊可為can控制器提供接收標識符的查詢功能(驗收濾波)。另外,驗收濾波器為選擇的標準標識符提供了fulican-style自動接收功能。在初始化can控制器中將驗收濾波器設置為旁路,也可以根據實際需要進行設置,讓其參與接收濾波的工作,有助于改善節點接收信息的選擇性。完成初始化can控制器后,即可發送和接收報文信息。
發送報文驅動程序主要實現報文發送,發送報文流程如圖4所示。發送報文時。將待發送的數據打包成符合can發送幀格式的數據送人can控制器的發送緩存區。在向發送緩沖區送報文之前,必須判斷發送緩沖區是否空閑。若發送緩沖區繁忙則返回失敗;若空閑則將數據寫人發送緩沖區,寫入完成后再判斷寫入是否成功,寫入成功后啟動發送命令,發送緩沖區中的數據,然后返回狀態標志。
接收驅動程序主要完成報文接收以及其