Tải bản đầy đủ (.doc) (15 trang)

CHƯƠNG 5 CHƯƠNG TRÌNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (140.6 KB, 15 trang )

Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

Chương 5:
CHƯƠNG TRÌNH
PHẦN 1: TẬP LỆNH
I.

GIỚI THIỆU TẬP LỆNH :

Việc thu thập dữ liệu và điều khiển từ xa là một vấn đề đáng được quan
tâm trong lónh vực điều khiển tự động. Tuy nhiên, thật phiền hà nếu như không
có một sự thống nhất chung về câu lệnh trong quá trình trao đổi thông tin. Vì
thế, một phần nội dung chính của đề tài là xây dựng được một tập lệnh trong
giao tiếp dữ liệu giữa máy tính với vi xử lý và sử dụng được nó. Việc xây dựng
tập lệnh giao tiếp RS-232 này được xem như một mong muốn tạo ra một câu
lệnh chung trong giao tiếp dữ liệu giữa máy tính và vi xử lý về mặt ngôn ngữ.
Đây là một phương tiện giao tiếp giữa máy tính và vi xử lý, nhằm giúp
cho người sử dụng không phải mất nhiều thời gian lập trình lại từ đầu mỗi khi
muốn thực hiện vấn đề giao tiếp mà việc trao đổi thông tin vẫn có thể xảy ra dễ
dàng thông qua việc sử dụng tập lệnh này.
Tập lệnh được xây dựng bao gồm các lệnh xuất nhập đầy đủ các dạng tín
hiệu như: tín hiệu dạng mức, tín hiệu dạng xung, tín hiệu dạng analog/digital
giúp việc trao đổi thông tin không bò giới hạn và đối tượng điều khiển (từ kit vi
xử lý) cũng được phong phú hơn. Ngoài ra, tập lệnh còn có một số lệnh điều
khiển và quan sát quá trình hoạt động của hệ thống như: biến cài đặt dạng sóng
ngõ ra (Kx), counter (Cx), dữ liệu (Dx), biến trạng thái xác lập chế độ hoạt động
từ PC hay từ KIT (Sx) và biến thực thi hiển thò chế độ hoạt động RUN/STOP
(Mx) giúp cho quá trình hoạt động của hệ thống diễn ra một cách chặt chẽ, dễ


quan sát và dễ quản lý hơn.
II.

NỘI DUNG TẬP LỆNH:

Các lệnh được xây dựng trong tập lệnh giao tiếp RS-232 này nhìn chung
chỉ bao gồm các lệnh giao tiếp dữ liệu là xuất và nhập. Đối với các lệnh gởi dữ

Luận Văn Tốt Nghiệp

3

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

liệu về máy tính (PC): nội dung dữ liệu được kit vi xử lý thu thập từ các đối
tượng điều khiển bên ngoài ví dụ như giá trò diện áp, xung điều khiển hoặc các
giá trò đo được từ cảm biến v.v… và đưa vào các vùng đòa chỉ đònh sẵn tùy thuộc
vào dạng của tín hiệu thu vào (dạng mức, xung hay A/D) và gởi đến PC mỗi khi
có yêu cầu. Đối với các lệnh gởi dữ liệu từ PC đến vi xử lý: nội dung dữ liệu
nhận về từ PC, ví dụ như các thông số điều khiển được cài đặt sẵn, cũng được
đưa vào các vùng đòa chỉ riêng ứng với các dạng dữ liệu nhận vào. Các giá trò dữ
liệu này có thể được dùng để điều khiển các đối tượng bên ngoài khác tùy thuộc
vào ứng dụng cụ thể của chương trình. Các lệnh không mang dữ liệu được PC
gởi đến vi xử lý là các lệnh yêu cầu vi xử lý gởi dữ liệu, các lệnh không mang

dữ liệu từ vi xử lý gởi về PC là các lệnh trả lời đã nhận được nội dung PC vừa
gởi vì vi xử lý không có chức năng yêu cầu dữ liệu.
1 Bảng mô tả các vùng đòa chỉ của board VXL:

Stt

Vùng đòa
chỉ

Số byte

Dạng dữ liệu

1

I0-I1

2x2

2 byte dạng ASCII

Input mức-16 ngõ vào(bit)

2

N0-N1

2x5

5 byte dạng ASCII


Input xung-2 ngõ vào(99.999Hz
max)

3

Q0-Q1

2x5

5 byte dạng ASCII

Ngõ vào A/D – 2 ngõ vào
(99.999max)

4

U0-U1

2x5

5 byte dạng ASCII

Ngõ vào A/D - 2 ngõ vào
(±4.999max)

5

O0-O1


2x2

2 byte dạng ASCII

Output mức-16 ngõ ra(bit)

6

P0-P1

2x5

5 byte dạng ASCII

Output xung-2 ngõ ra (99.99Hz
max)

7

A0-A1

2x5

5 byte dạng ASCII

Ngõ
ra
D/A-2
(99.999max)


8

K0-K7

8x2

2 byte dạng ASCII

Biến cài đặt

9

C0-C7

8x4

4 byte dạng ASCII

Counter

10

D0-D7

8x2

2 byte dạng ASCII

Dữ liệu


11

S0-S7

8x1

1 byte dạng ASCII

Biến trạng thái

12

M0-M7

8x1

1 byte dạng ASCII

Biến thực thi

Luận Văn Tốt Nghiệp

4

Mô tả

ngỏ

SVTH: Châu Thò Bích Nga


ra


Chương 1:
Giao thức truyền thông
2

GVHD: Thầy Huỳnh Hữu Phương

Bảng mô tả các lệnh chuẩn:

Stt

Lệnh từ PC

Phản hồi từ VXL

1

I↵

I0’B’I1’B’↵

Ix↵

Ix’B’↵

N↵

N0’BBBBB’N1’BBBBB’↵


Nx↵

Nx’BBBBB’↵

Q↵

Q0’BBBBB’Q1’BBBBB’↵

Qx↵

Qx’BBBBB’↵

U↵

U0’BBBBB’U1’BBBBB’↵

Ux↵

Ux’BBBBB’↵

5

Ox’B’↵

Ox↵

Xuất ngõ ra các Digital Output.
x=0 hay 1 (dạng ASCII)


6

Px’BBBBB’↵

Px↵

Xuất ngõ ra các PWM. x=0 hay 1
(dạng ASCII)

7

Ax’BBBBB’↵

Ax↵

Xuất ngõ ra các D/A. x=0 hay 1
(dạng ASCII)

8

Kx↵

Kx’BB’↵

Đọc ngõ vào biến cài đặt.x=0 đến
7 (dạng ASCII)

9

Cx↵


Cx’BBBB’↵

Đọc ngõ vào giá trò counter x=0
đến 7 (dạng ASCII)

10

D’BB’x↵

Dx↵

Xuất dữ liệu ra.x=0 đến 7 (dạng
ASCII)

11

Sx↵

Sx’B’↵

Đọc ngõ vào biến trạng thái. x=0
đến 7 (dạng ASCII)

12

Mx’B’↵

Mx↵


Xuất ngõ ra biến thực thi.x=0
đến 7 (dạng ASCII)

2
3
4

Mô tả(cho PC)
Đọc ngõ vào các Digital input.
x=0hay1(dạng ASCII)
Đọc ngõ vào các puls Input.
x=0hay1(dạng ASCII)
Đọc ngõ vào các A/D Input (đơn
cực). x=0 hay 1 (dạngASCII)
Đọc ngõ vào các A/D Input
(lưỡng
cực).
x=0
hay
1
(dạngASCII)

Ghi chú: ’BBBBB’: số byte dữ liệu của các vùng đòa chỉ luôn được gọi ở dạng ASCII ; x là
chỉ số đi kèm theo các ký tự chỉ vùng đòa chỉ nhằm mở rộng các vùng đòa chỉ có cùng chức
năng.
Luận Văn Tốt Nghiệp

5

SVTH: Châu Thò Bích Nga



Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

PHẦN 2: MÔ TẢ CHƯƠNG TRÌNH

Buffer
user

1

4
3

2

Giao
tiếp RS232

Chương
trình xử
lý dữ
liệu

LƯU ĐỒ CHƯƠNG TRÌNH TỔNG
QUÁT
1: Dữ liệu nhận về từ PC

2: Dữ liệu gởi đến PC
3: Kết quả xử lý
4: Yêu cầu xử lý

-

Khối giao tiếp RS-232:
Nhận chuỗi từ PC
Kiểm tra.
Đóng gói dữ liệu (truyền)
Truyền dữ liệu đã đóng gói đến PC

Luận Văn Tốt Nghiệp

6

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

 Khối buffer user:
Đây là vùng đệm cho các chương trình ứng dụng. Khối này thực hiện
lưu trữ và truy xuất dữ liệu từ các vùng dữ liệu quy đònh trong tập lệnh.
Các chương trình thực hiện trong khối này là:
- Ghi giá trò A/D vào vùng đòa chỉ Q0.
- Ghi trạng thái hoạt động từ Kit hay PC đọc từ ngõ vào input 1 đưa

vào ô nhớ S0.
- Chế độ Run/Stop nhận từ PC đưa vào ô nhớ đòa chỉ M0.
- Các ngõ vào input 2,3,4 cài đặt dạng sóng ra đưa vào vùng nhớ đòa
chỉ K0.
- Trò đỉnh của dạng sóng ra đưa vào ô nhớ dữ liệu đòa chỉ D0.
 Khối chương trình xử lý dữ liệu:
Khối này thực hiện các chương trình ứng dụng cho hệ thống. Tùy
các yêu cầu cụ thể đặt ra mà nó thực hiện nhiều hay ít chức năng. Sơ đồ
khối tổng quát cho nhóm chương trình trtong ứng dụng này là:
Hiển thò

Buffer
user

Chương trình xử lý

Đọc input
Xuất output

Tạo dạng
sóng ra

Đọc A/D

Xuất D/A

Luận Văn Tốt Nghiệp

7


SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

Bước đầu trong giao tiếp dữ liệu giữa máy tính và vi xử lý được thực
hiện bởiø việc gởi chuỗi dữ liệu từ máy tính. Do đó, kit vi xử lý chỉ thực
hiện và trả lời theo yêu cầu của máy tính gởi đến.
CHƯƠNG TRÌNH NHẬN CHUỖI TỪ PC:
Như đã giới thiệu ở chương Protocol, frame dữ liệu gởi đi luôn được
bắt đầu bởi một byte header cho cả hai hướng truyền (từ PC và vi xử lý).
Vì thế, để tránh mất thời gian nếu phải nhận vào cả chuỗi mà ngay ở byte
đầu tiên đã không đúng, nên trước tiên ta chỉ nhận về và kiểm tra byte
header. Việc nhận dữ liệu chỉ được tiếp tục thực hiện khi byte header là
đúng. Ngoài ra cũng có một số ràng buộc kèm theo cho quá trình nhận
chuỗi, là ở lần nhận sau phải đảm bảo rằng dữ liệu nhận vào lần trước đó
đã được kiểm tra và xử lý. Điều kiện này đặt ra nhằm mục đích bảo toàn
các giá trò nhận về từ PC, vì nếu việc nhận dữ liệu vào cứ diễn ra liên tục
mà quá trình kiểm tra và xử lý không đáp ứng kòp, thì sẽ xảy ra trường
hợp dữ liệu ở lần nhận sau sẽ đè lên dữ liệu nhận về trước đó. Như vậy,
quá trình thực hiện sẽ bỏ sót một vài trường hợp xử lý tức hệ thống hoạt
động không tối ưu. Điều này chỉ thật sự cần thiết đối với hệ thống thực
hiện theo hệ thời gian thực (multitasking) vì các công việc trong chương
trình được thực hiện song song nhau.

Luận Văn Tốt Nghiệp


8

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

Max=chiều dài tối đa của
chuỗi cho phép nhập vào
Kiểm tra vùng
đệm thu có dữ liệu không
Cờ nhận=0 ?
Không



Sai

Kiểm tra byte Header

Đúng
Nhận vào 4 byte đầu của chuỗi
x[i]
N=x[3]+4
(chiều dài củachuỗi dữ liệu+
4byte header&control fiels)


N

N<=max?

Y
i=0n
Nhận chuỗi x[i] vào vùng
đệm thu

i=0max
Nhận chuỗi x[i] vào vùng
đệm thu

END
Chương trình nhận chuỗi từ PC

Luận Văn Tốt Nghiệp

9

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

CHƯƠNG TRÌNH KIỂM TRA:


Việc kiểm tra chuỗi dữ liệu nhận về chủ yếu là kiểm tra cấu trúc frame có phù hợp
với đònh nghóa không, và chuyển các giá trò dữ liệu nhận vào đến vùng đòa chỉ khác,
đồng thời cho phép hệ thống tiếp tục nhận dữ liệu vào nếu có. Tác vụ này được thực
hiện mỗi khi có chuỗi mới được nhận vào.
Cothu=1?

(hoàn tất công việc nhận
chuỗi?)

N

Y
Bit b0=bit thấp nhất của byte bufin[2]

Bit b0=0?
(chuỗi nhận vào có dữ liệu?)

Y
N

Số byte
dữ liệu (bufin[3])>1?

N
Số byte
dữ liệu (bufin[3])>1?

N

Y


Y

Kết quả nhận sai

Kết quả nhận đúng

Chuỗi buffer[]=chuỗi bufin[]

Cothu=0(được phép
nhận chuỗi mới)

RET

Luận Văn Tốt Nghiệp

10

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

CHƯƠNG TRÌNH XỬ LÝ TẬP LỆNH:

Chương trình xử lý tập lệnh bước đầu thực hiện việc kiểm tra một số
byte control fiels được nhận về từ PC nhằm tránh sự trùng lặp trong quá

trình xử lý. Vì theo giao thức truyền thông đặt ra (protocol), nếu trong
khoảng thời gian và số lần nhắc lại qui đònh, kể từ sau khi PC gởi một yêu
cầu đến máy tính, mà PC vẫn không nhận được kết quả phản hồi theo
mong muốn ( lỗi này có thể xảy ra khi kit vi xử lý không nhận đầy đủ dữ
liệu gởi đến từ PC, có thể do các byte control fiel không được xác lập
đúng qui đònh … ) hoặc kết quả nhận về từ khối vi xử lý báo lỗi thì nó gởi
lại frame truyền mới, mà frame gởi lại này mang đầy đủ thông tin vừa rồi
cho khối vi xử lý (xem chi tiết trong phần protocol). Tuy nhiên, không
phải bất cứ khi nào PC không nhận được frame truyền mang theo thông
tin trả lời từ vi xử lý đều xem là lỗi mà có thể do gặp sự cố về vấn đề thời
gian. Trong trường hợp đó, chương trình không xử lý lại từ đầu mà tiếp
tục công việc xử lý cũ. Nên bước kiểm tra này giải đáp cho câu hỏi khối
vi xử lý có nhận được và có xử lý yêu cầu vừa rồi không?
Tiếp theo quá trình kiểm tra, việc xử lý tập lệnh sẽ thực hiện dựa trên
các kết quả của quá trình xử lý theo chức năng cụ thể cho từng hệ thống
được đưa vào các vùng nhớ và sử dụng các lệnh được xây dựng trong tập
lệnh.

Luận Văn Tốt Nghiệp

11

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương


START

Lưu đồ: chương trình

N

Kết quả nhận đúng ?

xử lý ứng dụng tập

Y

lệnFrame
h nhận vào có dữ liệu ?

N

Y

Bit b1=buffer[2]&0x02

N

Frame gởi lần đầu
(b1=0)?

Y
buffer[4] ≠ đòachỉ[0]?
Và buffer[5] ≠ đòachỉ[1]?


N

Y

Đòachỉ[0]=buffer[4]
Đòachỉ[1]=buffer[5]

Gọi tập lệnh

Cờ xử lý =1
(xử lý xong)

RET

Luận Văn Tốt Nghiệp

12

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

CHƯƠNG TRÌNH ĐÓNG GÓI DỮ LIỆU:

Chương trình đóng gói dữ liệu là tạo ra một frame truyền trả về cho PC mỗi khi nhận
yêu cầu gởi đến từ nó. Frame này cũng tuân theo qui đònh của các byte control fiel,

và có thông báo kết quả của lần nhận vừa rồi. Đối với frame gởi về từ vi xử lý, mã
ID là mã của frame nhận từ PC. Ngoài ra, việc đóng gói dữ liệu còn nhằm mục đích
là đảm bảo trong quá trình gởi 1 khung dữ liệu từ Kit về PC nếu có sự gián đoạn nào
xảy ra (1 chương trình interrupt chẳng hạn ) thì sự thay đổi giá trò của một biến bất kỳ
cũng không gây ảnh hưởng đến dữ liệu truyền, tuy trường hợp này chỉ xảy ra với xác
suất thấp vì tốc độ truyền dữ liệu rất cao nhưng nó cũng là một khuyết điểm đáng
chú ý của chương trình nếu không được quan tâm đến.
Quá trình đóng gói dữ liệu và trả lời cho PC không phụ thuộc vào chương trình xử lý
về mặt thời gian. Nó được thực hiện sau khi hoàn tất chương trình kiểm tra frame
nhận vào, kết quả của quá trình xử lý sẽ quyết đònh nội dung gởi về cho PC, số byte
dữ liệu là không nếu chương trình xử lý vẫn đang thực hiện tại thời điểm đóng gói.

Luận Văn Tốt Nghiệp

13

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương
Bufout[0]=header
Bufout[1]=bufin[1]

Khởi tạo bufout[2]=0x80

Kết quả nhận đúng?


Y

Bit b2=0
(bufout[2]=. . . b2b1b0)

N
Bit b0=0

Bufout[3]=0(chiều dài
chuỗi dữliệu=0)

Xử lý xong?

Y

N
Bit b2=1
(bufout[2]=. . . b2b1b0)

Bufout[3]=0(chiều dài
chuỗi dữliệu=0)

Bit b0=0

Bufout[3]=chiều dài
chuỗi dữliệu
Bufout[i+4]=dulieu[i]

Gởi chuỗi bufout


Luận Văn Tốt Nghiệp

14

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

CHƯƠNG TRÌNH DEMO-KIT:

Chương trình xử lý cho ứng dụng Demo-kit luôn phải cập nhật ngõ
vào input 1 từ switch để biết chế độ hoạt động của hệ thống là Kit hay
PC.

Chương trình xử lý được bắt đầu khi nhận được tín hiệu RUN và
kết thúc tại STOP do PC gởi đến.
Các ngõ vào Input 2, 3, 4 được đọc về từ switch nên được thực
hiện theo mức ưu tiên (từ 2 đến 4) nếu có nhiều ngõ vào cùng tích cực.
Nếu tại một thời điểm mà không có dạng sóng ra nào được chọn
thì hệ thống ở chế độ chờ và có thông báo ra PC.
Các dạng sóng ngõ ra chỉ nhằm mục đích minh họa cho ứng dụng
của việc sử dụng tập lệnh nên nó được xây dựng rất đơn giản với các
dạng sóng ngõ ra có độ dốc không đổi .

Luận Văn Tốt Nghiệp


15

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

I.

GVHD: Thầy Huỳnh Hữu Phương

CÁC DẠNG SÓNG NGÕ RA

Đọc ngõ vào input 1 từ kit để chọn chế độ hoạt
động

N

Trạng thái RUN?

Y
Input 1=1

N

Y
Hoạt động từ PC

Hoạt động từ kit


Đọc các ngõ vào input 2,3,4 từ
data switch

input 2=1?

Đọc các ngõ vào input 2,3,4 PC
truyền về

N

Y

N
input3=1?

Sóng ra dạng
răng cưa lên

Y
Sóng ra dạng răng
cưa xuống

N
input4=1
Y
?
Sóng ra dạng
nón


Chế độ
chờ

End
Lưu đồ: Sóng ra dạng nón
Luận Văn Tốt Nghiệp

16

SVTH: Châu Thò Bích Nga


Chương 1:
Giao thức truyền thông

GVHD: Thầy Huỳnh Hữu Phương

Cài đặt trò đỉnh

Cài đặt trò đỉnh

Sóng ra =0

Sóng ra =trò đỉnh

N

N

Timer =

100ms

Y

Y

N

N
Sóng ra ≠0?

Sóng ra < trò
đỉnh

Y

Y

Tăng sóng ra

Giảm sóng ra

Sóng ra dạng răng cưa xuống

Luận Văn Tốt Nghiệp

Timer =
100ms

Sóng ra dạng răng cưa lên


17

SVTH: Châu Thò Bích Nga



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×