Khác với các công nghệ sản xuất chip thông thường chỉ cho ra các IC riêng lẻ, IC ngoại vi không có bộ xử lý thì công nghệ PSoC của hãng Cypress cho phép tạo nên cả một hệ thống trên một
Trang 1Hình 2-10 Cửa sổ làm việc chính của giao diện
Nếu kết nối với máy tính Đồng thời máy tính sẽ tự động lưu các bộ
tham số với chu kỳ trích mẫu là 10 phút để phục vụ cho các lần tưới sau
2.6 Kết luận chương II
Thông qua chương II ta đã tiến hành lựa chọn ra một phương pháp tưới tối ưu, có hiệu quả kinh tế lớn nhất mà vẫn đảm bảo các điều kiện kỹ thật mang lại lợi nhuận lớn nhất cho người nông dân Từ phương pháp tưới
ta tiến hành nghiên cứu tính toán các thông số và áp dụng thiết kế cho hệ thống tưới phun mưa cho một khu vườn thí nghiệm có diện tích S = 400m2
Từ đó lập trình tạo ra giao diện điều khiển kết nối giữa máy tính với bộ điều khiển bên ngoài
Trang 2Chương 3 Nghiên cứu phần cứng và phần mềm của chip
vi xử lý trên công nghệ pSOc của hãng cypress
3.1 Lựa chọn thiết bị điều khiển
Trong điều kiện khoa học phát triển như hiện nay thì để thực hiện một bài toán điều khiển thì ta có rất nhiều giải pháp trên các phần cứng cũng như phần mềm thông minh Như điều khiển bằng hệ thống Rơle, chip vi xử lý, PLC… Song tuỳ vào điều kiện, quy mô từng bài toán mà ta lựa chọn ra các giải pháp sao cho hợp lý, đảm bảo hiệu quả kinh tế
Đối với bài toán điều khiển hệ thống tưới phun mưa thì do điều kiện tự nhiên mà bàn điều khiển có thể phải để ngoài thực địa và cần di chuyển nhiều, mặt khác độ phức tạp khi điều khiển không cao thông số điều khiển vào ra không nhiều cho nên tôi chọn chip vi xử lý trên công nghệ PSoC làm giải pháp
điều khiển cho hệ thống tưới phun mưa
Khác với các công nghệ sản xuất chip thông thường chỉ cho ra các IC riêng lẻ, IC ngoại vi không có bộ xử lý thì công nghệ PSoC của hãng Cypress cho phép tạo nên cả một hệ thống trên một chip bao gồm CPU, ROM, RAM
và các ngoại vi thời gian thực ( ADC, DAC, Timer, Counter, các cổng vào ra
đa chức năng, các cổng truyền thông…) Ngoài ra, công nghệ này còn có một
ưu điểm nổi trội hơn so với các công nghệ khác là cho phép người lập trình thay đổi cấu hình phần cứng trong quá trình hoạt động
Các chip chế tạo theo công nghệ PSoC được phát triển trên nền vi xử lý ngày càng hoàn thiện về chức năng, tối ưu về kích thước Các chip này đã dần thay thế vị trí các bộ vi xử lý ứng dụng trong đo lường điều khiển công nghiệp cũng như nhiều lĩnh vực khác Từ những ưu điểm vượt bậc trên ta tiến hành chọn chip vi xử lý trên công nghệ PSoC làm chip điều khiển hệ thống tưới
Trang 3phun mưa
3.2 Tổng quan cấu trúc và tính năng của PSoC
PSoC là một từ viết tắt của cụm từ tiếng anh: Programable System on Chip nghĩa là hệ thống khả trình trên một chip Các chip chế tạo theo công nghệ PSoC là chip điều khiển thông minh có tính linh hoạt cao, chi phí công nghệ phục vụ nghiên cứu và phát triển ban đầu khá thấp, giá thành chip thấp, hỗ trợ
kỹ thuật tốt với phần mềm phát triển dễ sử dụng
Thành phần của chip PSoC bao gồm các khối ngoại vi số và tương tự có thể cấu hình được, một bộ vi xử lý 8 bit, bộ nhớ chương trình (EEROM) có thể lập trình được và có bộ nhớ RAM lớn Để lập trình hệ thống và cài chương trình điều khiển vào chip thì ta cần có phần mềm lập trình và một kit phát triển do hãng chế tạo chip cung cấp, Ví dụ như các chip PSoC của hãng Cypress thì người lập trình cần có phần mềm PSoC Designer Phần mềm thiết
kế được xây dựng trên cơ sở hướng đối tượng với cấu trúc module hoá Mỗi khối chức năng là một module mềm Việc lập cấu hình cho chip như thế nào
là tuỳ thuộc vào người lập trình thông qua một số thư viện chuẩn Người lập trình thiết lập cấu hình trên chip chỉ đơn giản bằng cách muốn chip có những chức năng gì thì kéo chức năng đó và thả vào khối tài nguyên số hoặc tương
tự, hoặc cả hai (Bản chất đây là phương pháp lập trình kéo thả) Việc thiết lập ngắt trên chân nào, loại ngắt gì, các chân vào ra được hoạt động như thế nào
đều tuỳ thuộc vào việc thiết lập của người lập trình cho PSoC Chip PSoC có nhiều họ đối với mỗi họ nó cung cấp phần cứng khác nhau, có bao nhiêu chân, chức năng mỗi chân, số lượng các khối và tốc độ của chúng Đối với chip PSoC họ CY8C27xxx cung cấp
1) Bộ vi xử lý với cấu trúc Harvard
5 Tốc độ của vi xử lý lên đến 24 MHz
5 Lệnh nhân 8 bit x 8 bit, thanh ghi tích luỹ là 32 bit
Trang 45 Hoạt động ở tốc độ cao mà năng lượng tiêu hao ít
5 Dải điện áp hoạt động từ 3,0 đến 5,25V
5 Điện áp hoạt động có thể giảm xuống 1,0V sử dụng chế độ kích điện áp
5 Hoạt động trong dải nhiệt độ từ - 40 °C đến 85 °C
2) Các khối ngoại vi có thể hoạt động độc lập hoặc kết hợp
5 12 khối ngoại vi tương tự có thể được thiết lập để được thiết lập để đáp ứng yêu cầu bài toán
x Các bộ ADC lên tới 14 bit
x Các bộ DAC lên tới 9 bit
x Các bộ khuyếch đại có thể lập trình được hệ số khuyếch đại
x Các bộ lọc và các bộ so sánh có thể lập trình được
5 8 khối ngoại vi số có thể được lập để làm các nhiệm vụ:
x Các bộ định thời đa chức năng, đếm sự kiện, đồng hồ thời gian thực,
bộ điều chế độ rộng xung có và không có dải chết( dead band)
x Các module kiểm tra lỗi (CRC modules)
x Hai bộ truyền thông nối tiếp không đồng bộ hai chiều
x Các bộ truyền thông SPI Master hoặc Slaver có thể cấu hình được
x Có thể kết nối với các chân vào ra
3) Bộ nhớ linh hoạt trên chip
5 Không gian bộ nhớ chương trình Flash từ 4K đến 16K, phụ thuộc vào từng loại chip với chu kỳ ghi xoá cho bộ Flash là 50.000 lần
5 Không gian bộ nhớ RAM là 256 byte
5 Chip có thể lập trình thông qua chuẩn nối tiếp (ISSP)
5 Bộ nhớ Flash có thể được nâng cấp từng phần
5 Chế độ bảo mật đa năng tin cậy
5 Có thể tạo được không gian bộ Flash trên chip lên tới 2,304 byte
4) Có thể lập được cấu hình cho từng chân của chip
5 Các chân vào ra ba trạng thái sử dụng Trigger Schmitt
Trang 55 Đầu ra logic cung cấp dòng 25mA với điện trở treo cao hoặc thấp bên trong
5 Thay đổi dược ngắt trên từng chân
5 Đầu ra tương tự có thể cung cấp dòng tới 40mA
5 Đường ra đa chức năng có từ 6 đến 44 tuỳ thuộc vào từng loại chip
5) Xung nhịp của chip có thể lập trình được
5 Bộ tạo dao động 24/48 MHz bên trong( Độ chính xác là 2,5%)
5 Có thể lựa chọn bộ dao động ngoài lên tới 24MHz
5 Bộ tạo dao động thạch anh 32,768 kHz bên trong
5 Bộ tạo dao động tốc độ thấp bên trong sử dụng cho Watchdog và Sleep
6) Ngoại vi được thiết lập sẵn
5 Bộ định thời Watch dog và sleep phục vụ chế độ an toàn và chế độ nghỉ
5 Module truyền thông I2C Master và I2C Slave tốc độ lên tới 400kHz
5 Module phát hiện điện áp thấp được cấu hình bởi người sử dụng
7) Công cụ phát triển
5 Phần mềm phát triển miễn phí (PSoCCTM Designer)
5 Bộ lập trình và bộ mô phỏng với đầy đủ tính năng
5 Mô phỏng ở tốc độ cao
3.3 Tìm hiểu cấu trúc phần cứng chip PSoC
A Cấu trúc vi xử lý
1.Bộ xử lý trung tâm - CPU
Trong chip PSoC bộ xử lý trung tâm CPU được gọi với tên là M8C Bộ
xử lý này kiểm soát các thanh ghi nội tại, không gian địa chỉ tập lệnh cũng như các chế độ địa chỉ Các họ chíp của PSoC dựa trên bộ vi xử lý mạnh mẽ 8 bit với cấu trúc Harvard (Cấu trúc Harvard là cấu trúc mà bus dữ liệu, bus địa chỉ và tín hiệu điều khiển của bộ nhớ chương trình và bộ nhớ dữ liệu độc lập
Trang 6với nhau) Nó có 5 thanh ghi điều khiển hoạt động chính của CPU Những thanh ghi này bị tác động bởi những lệnh khác nhau Người sử dụng không thể truy cập trực tiếp vào các thanh ghi này thông qua không gian bộ nhớ các thanh ghi Các thanh ghi của CPU được cho trong bảng sau:
Bộ đếm chương trình là một thanh ghi16 bit (CPU_PC), nó cho phép người lập trình truy cập trực tiếp vào toàn bộ không gian bộ nhớ chương trình trên chíp (16 Kbytes đối với thành viên lớn nhất) Đây là một không gian nhớ liên tục và không cần phải tạo thành trang (no paging)
- Thanh ghi chứa (Accumulator) là một thanh ghi đa mục đích, nó thường
được sử dụng để lưu giữ kết quả của bất cứ một lệnh nào sử dụng chế độ địa chỉ nguồn
- Thanh ghi chỉ số được dùng để lưu giữ giá trị Offset (độ lệch) trong chế
độ địa chỉ chỉ số Tiêu biểu là nó được dùng để địa chỉ một khối dữ liệu bên trong không gian nhớ dữ liệu
- Thanh ghi Con trỏ Stack (Stack Pointer) lưu giữ địa chỉ của đỉnh Stack trong không gian nhớ dữ liệu Nó bị tác động bởi những lệnh như PUSH, POP, LCALL, RETI và RET Nói chung là tất cả những lệnh có liên quan đến stack của phần mềm Nó cũng có thể bị ảnh hưởng bởi lệnh SWAP và lệnh ADD
- Thanh ghi cờ (Flags) có ba bit trạng thái, bit cờ không - Zero Flag bit[1]; bit cờ nhớ - Carry Flag bit[2]; bit Supervisory State[3] Bit cho phép ngắt toàn cục- Global Interrupt enable bit[0] được dùng để cho phép hoặc
Trang 7cấm toàn bộ các ngắt Các cờ trên bị ảnh hưởng bởi những lệnh toán học, những lệnh logic
2.Ngắt và bộ điều khiển ngắt
Bộ điều khiển ngắt cho phép một đoạn mã của người lập trình được thực hiện mỗi khi có một ngắt sinh ra từ các khối chức năng trong chip PSoC Mỗi một khối số có một ngắt riêng và mỗi một cột khối tương tự cũng có một ngắt riêng Mỗi một ngắt cho nguồn cấp, chế độ ngủ, xung nhịp thay đổi, và một ngắt toàn cục cho các chân vào ra đa chức năng
Bảng 4-20: Các thanh ghi của bộ điều khiển ngắt
Bộ điều khiển ngắt cùng với những thanh ghi của nó cho phép các ngắt
có thể bị vô hiệu hóa đồng thời hoặc độc lập với nhau Các thanh ghi cung cấp một cách thức để người sử dụng có thể xóa tất cả những ngắt đang chờ và thông báo ngắt, hoặc có thể xóa một cách độc lập hay riêng biệt thông báo ngắt và ngắt chờ Một kỹ thuật phần mềm được cung cấp để cho phép người lập trình thiết lập ngắt một cách riêng biệt Thiết lập một ngắt bằng kỹ thuật này rất mạnh mẽ và hữu ích cho việc phát triển mã nguồn, khi mà nó không có
Trang 8đủ hệ thống phần cứng hoàn chỉnh để sinh ra một ngắt thực
Bảng 4-21 : Bảng vector ngắt của CY8C27xxx
3 Các cổng vào ra đa chức năng
Cổng vào ra đa chức năng cung cấp cho CPU một giao diện với bên ngoài Chúng đòi hỏi một số lượng lớn thanh ghi cấu hình để hỗ trợ cho nhiều chế
độ hoạt động vào / ra bao gồm cả số và tương tự
Bảng 4-22: Các thanh ghi vào ra đa chức năng
Chú ý: kí tự “x” sau dấu phẩy trong trường địa chỉ có nghĩa là các cổng vào ra đều có riêng biệt các thanh ghi trên Mỗi một cổng thì các thanh ghi sẽ
có một địa chỉ riêng Nhưng để dễ hiểu thì ta chỉ xét chung cho trường hợp tổng quát Các cổng vào ra đa chức năng đều có độ rộng là 8 bit/ 1 cổng Mỗi một cổng vào/ra bao gồm 8 khối GPIO giống hệt nhau Mỗi một khối GPIO
Trang 9đều được kết nối với bit có số thứ tự tương ứng trong địa chỉ và thanh ghi Bởi vậy, những thanh ghi trong bảng các thanh ghi trên thực sự chỉ dành cho một cổng (bao gồm 8 khối GPIO) Trong đó thì vị trí của bit sẽ chỉ rõ là khối GPIO nào trong 8 khối được điều khiển với cổng vào ra Mỗi một khối GPIO có thể
được sử dụng cho những kiểu vào ra sau:
- Vào ra số (Vào ra số điều khiển bởi phần mềm)
- Vào ra toàn cục (Vào ra cho các khối PSoC số)
- Vào ra tương tự (Vào ra cho các khối PSoC tương tự) mỗi một chân vào
ra đều có vài chế độ hoạt động cũng như là khả năng tạo ngắt Trong khi tất cả các chân đều được nối đường vào ra số thì một vài chân lại không được kết nối với chức năng vào ra của khối tương tự hoặc bus toàn cục
* Vào ra số:
Một trong những chức năng hoạt động cơ bản của cổng vào ra đa chức năng là cho phép CPU gửi thông tin ra ngoài chip và lấy thông tin từ bên ngoài vào Điều này được thực hiện nhờ thanh ghi dữ liệu cổng (Port Data Register PRTxDR) Việc viết dữ liệu vào thanh ghi PRTxDR sẽ lưu lại trạng thái dữ liệu, mỗi bit cho một chân GPIO Trong chế độ thường (standard non-bypass) thì mỗi chân GPIO sẽ lặp lại bit dữ liệu đó Nghĩa là khi ta viết một giá trị vào trong thanh ghi dữ liệu PRTxDR thì ở đầu ra của cổng tương ứng sẽ có giá trị giống như trong thanh ghi dữ liệu Điện áp thực ở chân ra phụ thuộc vào chế
độ hoạt động của chân và tải bên ngoài được nối vào chân đó (Xem cấu trúc của 1 chân vào ra để hiểu rõ thêm) CPU có thể đọc giá trị của một cổng bằng cách đọc giá trị của thanh ghi PRTxDR Khi CPU đọc giá trị của PRTxDR thì giá trị điện áp hiện thời của chân vào ra sẽ được chuyển đổi sang giá trị logic
và được trả về cho CPU Hoạt động này sẽ đọc giá trị điện áp của chân vào ra chứ không phải là đọc về giá trị chốt của thanh ghi PRTxDR
* Vào ra toàn cục (Global IO) Các cổng vào ra đa chức năng cũng được nối liền với các khối số thông qua các vào ra toàn cục Tính năng vào ra toàn
Trang 10cục của mỗi cổng được mặc định ở trạng thái tắt Để sử dụng tính năng này thì
có 2 thông số cần phải được thay đổi Thứ nhất để cấu hình cho một chân GPIO hoạt động như là một đầu vào toàn cục thì bit lựa chọn cổng toàn cục cần phải được set để yêu cầu GPIO sử dụng thanh ghi PRTxGS Thứ hai là chế
độ hoạt động của GPIO cần phải được đưa về trạng thái cao trở Để cấu hình cho một chân GPIO hoạt động như là một đầu ra toàn cục thì bit lựa chọn cổng toàn cục cần phải được set lần nữa Nhưng trong trường hợp này thì chế
độ hoạt động của GPIO là bất kì trừ chế độ cao trở
*Vào ra tương tự: Tín hiệu tương tự có thể được truyền dẫn giữa CPU và chân của chíp thông qua chân AOUT của khối Chân này được nối với khối thông qua một điện trở (khoảng 300 ohms) Chân vào ra đa chức năng cần phải đưa về chế độ cao trở trong trường hợp này Các ngắt của khối GPIO Mỗi một khối GPIO đều có thể được cấu hình một cách độc lập cho khả năng ngắt Các khối GPIO được cấu hình cho phép lựa chọn ngắt cho từng chân và cũng có thể lựa chọn kiểu ngắt phù hợp Nghĩa là các khối có thể sinh ra ngắt khi chân ở mức logic cao, thấp hoặc khi nó thay đổi so với lần đọc trước Các khối đều có một đầu ra ngắt riêng (INTO), nó được nối với các khối GPIO khác bằng một kiểu nối dây loại OR Do tất cả các chân đều được nối với nhau theo kiểu OR để sử dụng chung một hệ thống ngắt GPIO Nên nếu một ngắt GPIO được chia sẻ cho nhiều chân vào ra thì trình phục vụ ngắt của người sử dụng cần phải sử dụng vài kỹ thuật được thiết kế sẵn để quyết định xem là chân nào được chọn là nguồn sinh ngắt Sử dụng một ngắt GPIO yêu cầu những bước sau:
1 Đặt chế độ ngắt cho khối chân GPIO
2 Mở bit ngắt cho khối chân GPIO
3 Mở bit mặt nạ ngắt cho ngắt GPIO
4 Xác nhận bit ngắt toàn cục GIE
Phạm vi khối GPIO, xác nhận đường ra ngắt phụ thuộc duy nhất vào bit