摘 è¦ï¼šä»‹ç´¹äº†é‡‡ç”¨åµŒå…¥å¼å¾®æ©ŸSCï¼12å’ŒUSB接å£èŠ¯ç‰‡FT245BM 的智能控制終端,它具有3ç¨®éˆæ´»çš„æ•¸æ“šæŽ¥å£æ–¹å¼ï¼šä»¥å¤ªç¶²ã€USBå’ŒRS485串行å£ã€‚通éŽä»¥å¤ª 網連接å¯ä»¥å¯¦ç¾éˆæ´»çš„é 程數據ç²å–與控制;通éŽUSB串å£ç¸½ç·šï¼Œå¯ä»¥æ–¹ä¾¿åœ°é€²è¡Œç¾å ´æ•¸æ“š çš„å˜å–å’Œè¨å‚™çš„調試;而通éŽRS485總線å¯ä»¥ä½¿å¾—一個嵌入å¼å¾®æ©ŸSCï¼12與40個掛接在總線 上的控制模塊進行通訊。
é—œéµè©žï¼šåµŒå…¥å¼å¾®æ©Ÿ FT245BM芯片 RS485總線 并行Iï¼O 通訊å”è°
0引言
HIRFL—CSR(è˜å·žé‡é›¢å冷å»å„²å˜ç’°ï¼‰æ˜¯åœ‹å®¶ç´šé‡é»žå¯¦é©—室。CSR控制系統是ä¿è‰CSRæ£å¸¸é‹è¡Œçš„é‡è¦ç’°ç¯€ã€‚該控制系統是由多個å系統分別組æˆçš„。在CSR新的控制方案ä¸ï¼Œå…許用戶通éŽTCPï¼IPå”è°ä¾†è¨ªå•é 程控制è¨å‚™å’Œç²çŸ¥è¨å‚™çš„ç•¶å‰é‹è¡Œæƒ…æ³ã€‚為æ¤ï¼Œè¨è¨ˆå¹¶é‡‡ç”¨åµŒå…¥å¼å¾®æ©ŸæŽ§åˆ¶çµ‚端,使其能通éŽIntran et網絡與控制室ä¸çš„客戶機進行é ç¨‹é€šè¨Šï¼ŒåŒæ™‚也å¯ä»¥å°‡æŽ¥æ”¶åˆ°çš„é 程控制命令,傳é€åˆ°æŽ›æŽ¥RS485ç¸½ç·šä¸Šçš„å¤šå€‹æŽ§åˆ¶åæ¨¡å¡Šï¼Œå之也å¯ä»¥é †åˆ©é€šè¨Šã€‚采用USB控制芯片FT245BM進行串å£USB和并行Iï¼Oå£ä¹‹é–“çš„å”è°è½‰æ›ï¼Œä½¿å¾—工作人員在ç¾å ´é€šéŽé‹è¡ŒUSB客戶程åºä¾†å°åµŒå…¥å¼å¾®æ©Ÿé€²è¡Œç¾å ´æ•¸æ“šé‡‡é›†å’Œèª¿è©¦ï¼Œå¹¶æœ‰åˆ©äºŽå¾žå±€éƒ¨åˆ°æ•´é«”調試安è£ï¼Œé€æ¥å®Œæˆæ•´å€‹å¤§æŽ§åˆ¶ç³»çµ±çš„æ§‹å»ºã€‚
1èŠ¯ç‰‡çš„é¸æ“‡
(1)控制模塊采用的嵌入å¼å¾®æ©Ÿæ˜¯å¾·åœ‹Beck IPCå…¬å¸ç”Ÿç”¢çš„SCï¼12。如圖1æ‰€ç¤ºï¼Œå®ƒçš„å…§æ ¸é‡‡ç”¨å›ºåŒ–äº†DOS系統的80186芯片,其資æºå¦‚下:

·8018620 MHz16ä½CPUï¼›
·支æŒTCPï¼IP的實時DOSæ“作系統;
·512KB的用戶RAMå’Œ512KBçš„Flash Disk(其ä¸256KB用于æ“作系統);
·6×256 byte Iï¼O空間;
·14æ ¹ç¨‹åºå¯ç·¨çš„é›™å‘引腳(32腳的雙列直æ’å°è£ï¼‰ï¼›
·電æºåŠŸè€—350 mA(典型);
Â·å¯æ“´å……2GB的外接硬盤;
·兩個標準串行接å£ï¼ˆç”¨äºŽåˆå§‹è¨ç½®ï¼‰ï¼›
·一個雙絞線以太網接å£ï¼ˆ10ï¼100BaseT æä¾›FTP,Telnet,HTTPæœå‹™é€£æŽ¥ï¼‰ï¼›
·兩路定時器輸出和兩路定時器輸入;
·掉電ä¿è·æ©Ÿåˆ¶ï¼›
·一個編程串å£ã€‚
(2)FT245BM芯片功能簡介
在USB的開發ä¸ï¼Œè¦æ±‚è¨è¨ˆäººå“¡å°USB的標準ã€Firmware(固件)編程åŠé©…動程åºçš„ç·¨å¯«ç‰æœ‰è¼ƒæ·±å…¥çš„了解;而基于FT245BM芯片的USB產å“é–‹ç™¼ï¼Œèƒ½å¤ ä½¿ç ”ç™¼äººå“¡åœ¨æœ€çŸçš„周期內開發出相應的USB產å“。FT245BM芯片功能框圖如圖2所示,相關資æºå¦‚下。

·兩個FIFO數據緩沖å€ï¼Œ128 byte的接收緩沖å€å’Œ384 byte的發é€ç·©æ²–å€ï¼›
Â·æŽ¥æ”¶å’Œç™¼é€æ•¸æ“šé€Ÿåº¦æœ€é«˜å¯é”1M bï¼sï¼›
·USB收發器æä¾›USB1.1ï¼2.0çš„å…¨é€Ÿç‰©ç†æŽ¥å£åˆ°USB總線,支æŒUHCIï¼OHCI主控制器;
·串行接å£å¼•擎(SIE)主è¦ç”¨äºŽå®ŒæˆUSB數據的串ï¼å¹¶é›™å‘轉æ›ï¼›
·USBå”è°å¼•擎管ç†ä¾†è‡ªUSBè¨å‚™æŽ§åˆ¶ç«¯å£çš„æ•¸æ“šæµï¼›
·FIFO控制器處ç†å¤–部接å£å’Œæ”¶ç™¼ç·©æ²–å€é–“的數據轉æ›ï¼›
·通éŽ8æ ¹æ•¸æ“šç·šD0~D7åŠè®€å¯«æŽ§åˆ¶ç·šä¾†å®Œæˆå’Œå–®ç‰‡æ©Ÿçš„æ•¸æ“šäº¤äº’ï¼›
·內置3.3 V的穩壓器,6 MHz的振蕩器ã€8å€é »çš„æ™‚é˜å€é »å™¨ã€USB鎖相環和EEPROM接å£ï¼›
·采用32腳的PQFPå°è£ï¼Œé«”ç©å°å·§ã€‚
FT245BM的主è¦åŠŸèƒ½æ˜¯é€²è¡ŒUSB和并行Iï¼Oå£ä¹‹é–“çš„å”è°è½‰æ›ã€‚芯片一方é¢å¯å¾žä¸»æ©ŸæŽ¥æ”¶USB數據,并將其轉æ›ç‚ºå¹¶è¡ŒIï¼Oå£çš„æ•¸æ“𿵿 ¼å¼ç™¼é€çµ¦å¤–è¨ï¼›å¦ä¸€æ–¹é¢å¤–è¨å¯é€šéŽå¹¶è¡ŒIï¼Oå£å°‡æ•¸æ“šè½‰æ›ç‚ºUSBçš„æ•¸æ“šæ ¼å¼å‚³å›žä¸»æ©Ÿã€‚ä¸é–“的轉æ›å·¥ä½œå…¨éƒ¨ç”±èŠ¯ç‰‡è‡ªå‹•å®Œæˆï¼Œé–‹ç™¼è€…ç„¡é ˆè€ƒæ…®å›ºä»¶çš„è¨è¨ˆã€‚
2ç³»çµ±çµæ§‹
如圖3æ‰€ç¤ºï¼Œè©²é›»è·¯ç‚ºäº†é©æ‡‰å„種ä¸åŒå ´åˆçš„æ‡‰ç”¨ï¼Œæä¾›äº†3種接å£ï¼šUSBã€RS 485串行å£å’Œ10Mb以太網接å£ã€‚作為局部控制系統ä¸çš„ä¸Šä½æŽ§åˆ¶ç¸½æ©Ÿï¼Œå®ƒæä¾›äº†å®Œæ•´çš„總線控制和é 程通訊的功能。
3軟件編程
3.1基于TCPï¼IPå”è°ï¼ˆæµå¥—接å—)的Socket編程
控制系統利用Intranet來實ç¾ç¾å ´è¨å‚™çš„é 程監控和訪å•,WinSock通常是被稱為“套接å—â€çš„通訊å°è±¡ï¼Œå®ƒå¯ä½¿ä¸åŒçš„æ‡‰ç”¨ç¨‹åºè·¨ç¶²é€šè¨Šã€‚æœå‹™å™¨ä¸€èˆ¬æœ‰é‡å¾©å’Œå¹¶ç™¼å…©ç¨®ï¼Œå‰è€…用于é¢å‘çŸæ™‚間能處ç†å®Œçš„請求,由æœå‹™å™¨è‡ªè¡Œè™•ç†ï¼Œä¸»è¦ç”¨äºŽç„¡é€£æŽ¥çš„Socket編程模å¼ï¼Œä¸€èˆ¬é¢å‘事務處ç†ï¼Œä¸€å€‹è«‹æ±‚一個應ç”就能解決å•題。而åŽè€…å‰‡è™•ç†æ™‚é–“ä¸å®šçš„請求。在控制系統ä¸ï¼Œè¦ä¸å®šæ™‚的監測和控制ç¾å ´è¨å‚™ï¼Œé‡‡ç”¨é¢å‘連接的Socket編程模å¼å®Œæˆæœå‹™ 器(SCï¼12)與客戶機之間的通訊。å°äºŽSCï¼12微機,它æä¾›äº†é€šéŽåˆ©ç”¨Borland C++5.02開發環境和Beck IPCå…¬å¸æä¾›çš„è»Ÿä»¶èª¿è©¦ç’°å¢ƒï¼Œå¾ˆæ–¹ä¾¿çš„é€²è¡Œæœå‹™å™¨ç«¯çš„Socket編程。而å°äºŽå®¢æˆ¶ç«¯çš„用戶界é¢ï¼Œå¯ç”¨Visual C++6.0開發環境,通éŽWinSock API來編寫網絡通信的客戶端程åºã€‚
3.2USB客戶應用程åº
ç•¶FT245BMçš„USB接å£é€£æŽ¥åˆ°ä¸»æ©ŸåŽï¼Œå¿…é ˆåœ¨PC機上安è£ä¸€å€‹ç”±FTDIå…¬å¸å…è²»æä¾›çš„ 虛擬串行å£VCP(Virtual COM Port)驅動程åºã€‚該驅動程åºå…¼å®¹Windows 98ï¼98 SEã€Window s 2000ï¼MEï¼XPç‰ä¸åŒç‰ˆæœ¬ã€‚用戶å¯ä»¥åœ¨é€™è™›æ“¬ä¸²å£ä¸Šé€²è¡Œæ‡‰ç”¨ç¨‹åºçš„開發。該虛擬串å£å¯ 以象一個標準的物ç†ä¸²å£é‚£æ¨£è¢«è¨ªå•ï¼Œå¯æœ¬è³ªä¸Šæ‰€æœ‰é‡å°è™›æ“¬ä¸²å£çš„æ•¸æ“šé€šä¿¡éƒ½æ˜¯é€šéŽUSB總線完æˆçš„,在è¨å‚™ç«¯å‰‡é€šéŽå¹¶è¡ŒIï¼Oå£å®Œæˆã€‚
在PC端,應用VCå°è™›æ“¬ä¸²å£ï¼ˆé€šå¸¸ç‚ºCOM3)進行應用編程。采用Visual C++6.0環境自帶的串å£é€šè¨ŠæŽ§ä»¶Microsoft Communications Control(Version6î€0)進行編程。通訊控 件的工作原ç†é¡žä¼¼äºŽä¸æ–·æ–¹å¼ï¼Œç•¶æœ‰é€šè¨Šäº‹ä»¶ç™¼ç”Ÿæ™‚(如發é€ã€æŽ¥æ”¶æ•¸æ“šï¼‰ï¼Œå°±æœƒè§¸ç™¼OnComm事件。在OnComm事件的處ç†å‡½æ•¸ä¸èª¿ç”¨GetCommEvent()函數,由該函數的返回值å³å¯ç¢ºå®šæ˜¯ä»€ä¹ˆé¡žåž‹çš„事件,并由æ¤åšå‡ºç›¸æ‡‰çš„處ç†ï¼Œåœ¨ä¸²å£é€šè¨Šç¨‹åºä¸åªéœ€è¨ç½®å’Œç›£è¦–MSComm控件的屬性和事件便å¯ã€‚通éŽä¸²å£é€šè¨ŠæŽ§ä»¶ï¼Œç”¨æˆ¶å°±å¯ä»¥è¼•æ¾ç·¨å¯«è‡ªå·±çš„æ‡‰ç”¨ç¨‹åºã€‚
4çµèªž
由于采用了嵌入å¼å¾®æ©Ÿå¹¶å¤–æ“´FT245BMçš„USB芯片,å¯ä»¥å¾ˆå®¹æ˜“的使得控制系統ä¸çš„網絡節點智能化,并有利于通éŽç”¨æˆ¶è»Ÿä»¶é–‹ç™¼å‡ç´šæŽ§åˆ¶ç³»çµ±å’Œæ‹“å¯¬æŽ§åˆ¶ç¶²çµ¡ï¼›åŒæ™‚FT 245BMçš„USB芯片,為硬件編程(修改硬件)和USB客戶應用程åºçš„開發æä¾›äº†å¾ˆå¤§ä¾¿åˆ©ã€‚