Professional Documents
Culture Documents
I. Gii thiu c tnh phn mn v thit b Mc ch ti : ng dng ngn ng lp trnh C# to chng trnh giao tip gia thit b Vi iu Khin vi My Tnh. Bi bo co nhm gii thiu phng php giao tip . thc hin giao tip truyn nhn gia PC vi thit b MCU th C# phi c h tr bi cng c NetFrameWork 2.0 cung cp c tnh truyn nhn ni tip (Serial Communication). c tnh ny trong NetFrameWork 2 c tn l : namespace system.IO.Ports bao gm nhiu lp trong quan trng nht l lp SerialPort. Lp ny cung cp vic ng b v kim sot cc s kin ca I/O qua cc chn ca thit b cng Com . Cc kh nng c h tr bi system.IO.Ports : Kh nng truy xut cng ni tip trn PC. Giao tip vi cc thit b ngoi vi qua cng ni tip .(Serial Port). c tnh truyn dn : dng giao din RS 232 chun DB9 thc hin giao tip ch FullDuplex.
- RTS & DTR l ng ra tn hiu s,c th c t bng tay. - DCD, DSR, CTS, and RI l nhng bit vo v ch c th c - RX & TX hai chn ny nhm kim sot UART v khng c t . - Ngun in p cng l +-15V v ng ra 2 khong +5 to +15 v -5 to -15 v in p ng vo l 2 khong +3 to +15 v -3 to -15. in p ng vo khong -3 n +3V v ng ra khong -5 n +5V l vng khng xc nh - Qui nh p cc mc 1 v 0 cho khong in p.
Trang 1
II. Cc bc lp trnh phn mn : 1. Xc nh c ch giao tip qua RS 232, thng s ca cng COM : 1. 2. 3. 4. 5. a ch cng (Port Name). Tc baud (baudrate), S bt trong mt khung d liu (data bits), S bit dng gia cc khung d liu (stop bit), Bt kim tra chn l (parity bit).
i vi vic giao tip th quan tm n giao thc truyn d liu trong ti dng chun : 9600,8N1 (tc tc baud 9600 bps, 8 bit data, no parity v 1 bit stop). Trong phn mn c th s dng c vi cng o (bng phn mn Virtual Com) v c cng Com tht, nn c ch ly thng tin ca cng Com v giao tip qua cng no th do ngi dng la chn qua ch Select port 2. Xy dng giao din bng C# Windows Form trong b Visual Studio 2005 :
Trang 2
Trong c s dng chc nng Serial Port trong Toolbox to thuc tnh giao tip cng Com trong chng trnh. Chn cc ch mc nh cho cng Com nh : tc Baud 9600 bps, 8 bit data, no parity v 1 bit stop phn properties :
Trang 3
Trang 4
b. Khi to cc cng com c trong h thng. trong h thng c th s dng cng com o hay com tht ca thit b nn phi qut tt c cc cng com c trong h thng hin ti. Mt s hm cn ch nh : SerialPort.IsOpen(): Tr li trang thi ca cng l ang ng hay m. SerialPort.Open(): M cng vi thng s ci t. SerialPort.Close(): ng cng.
public Form1() { InitializeComponent(); string[] ports = SerialPort.GetPortNames(); // qut tt c cc port c kt ni vo PC. foreach (string port in ports) // a tt c cc port vo mc chn combobox. { cmbBoxPort.Items.Add(port); } }
Trang 5
khi chn cng com kt ni. Thc hin giao tip ly thng tin t thit b truyn ln v a thng tin xung thit b ( ti l mt ng dng ly thng tin 1 byte t vdk a ln v truyn 1 byte xung vdk.) thc hin c vic c thng tin t VDK a ln c 2 cch sau : Thng xuyn kim tra cng xem d liu c c truyn n khng ( kim tra th dng 1 Timer nh thi gian ) Phi bt c s kin d liu n, khi d liu n ta gi hm x l. Trong ng dng dng pp2 l ly s kin d liu c truyn n bng SerialDataReceivedEvent. Khi c s kin ny ta s c v x l d liu t b m cng .
this.port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.port_DataReceived_1);
trong port_DataReceived_1 l hm s c gi n khi c s kin d liu c nhn. Mt s hm c d liu t b m : SerialPort.ReadExisting (): c mt string t b m cng . SerialPort.ReadChar(): c mt gi tr kiu char t b m cng. SerialPort.ReadByte(): c mt gi tr kiu Byte t b m cng.
// s kin nhn d liu trong buffer v ly thng tin d liu . public void port_DataReceived_1(object sender, SerialDataReceivedEventArgs e) { InputData = port.ReadExisting(); // thc hin c mt string t b m cng if (InputData != String.Empty) { SetText(InputData); // gi hm xut d liu . } } public void SetText(string text) { if (this.temp.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else { this.temp.Text = ConvertToHex(text); // m c xut ra l m ASCII } } public string ConvertToHex(string asciiString) // thc hin chuyn ASCII sang Hex hin th {
Trang 6
Trang 7
Mc ch t nhit cho thit b, khi t 1 nhit no th gi tr t s c lu li v so snh vi nhit do thit b truyn ln, khi cn bng th tc ng vo thit b, c th l tc ng vo thit b qut Do thit k ca mch in v truyn d liu ca VDK nn nhit t cn nh hn < 64 hin th tt
Trang 8