Thông báo

Collapse
No announcement yet.

[Hỏi] Phần mềm tác động đến phần cứng bằng cách nào?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [Hỏi] Phần mềm tác động đến phần cứng bằng cách nào?

    Chào các mems!
    Mình đg là sv điện tử nhưng bỗng nhiên có 1 thắc mắc hết sức cơ bản như sau: làm thế nào mà chương trình phần mềm hoàn toàn phi vật chất lại có thể tác động lên những yếu tố vật lí thực? Ví dụ như khi chân P1.0 của 8051 chẳng hạn đg ở mức thấp tức là áp ra bằng 0V, vậy khi ta SETB P1.0 lên, tức là làm cho nó tích cực và áp ra trở thành 5V, vậy điều gì đã xảy ra bên trong vi điều khiển gây ra sự thay đổi này? Dù thi cử chẳng ai hỏi và nhiều khi làm thực tế cũng chả cần biết làm gì nhưng quả thật mình nghĩ mãi mà ko hiểu đc. Nhờ các mems giúp với!
    Thanks so much!

  • #2
    vi xử lý, chip, .... được cấu thành từ hàng triệu transistor - là các khóa đóng mở chuyển mạch, và những thành phần khác được tổ chức thành những khối chức năng chuyên biệt, bao gồm đơn vị xử lý số học, khối quản lý bộ nhớ và bộ nhớ đệm, khối luân chuyển dữ liệu và phép toán luận lý suy đoán. - bạn nạp chương trình cho chip, ví dụ là ngôn ngữ C, thì VXL có hiểu đc đâu, phải qua phần mềm rồi chuyển thành các số nhị phân 0 và 1, tức là đóng mở các transistor này thôi, khi bạn set lên mức 1 chẳng hạn thì nó sẽ đóng mở chuyển mạch làm sao cho chân đó lên mức cao, ( có phần làm nhiệm vụ này), nếu bạn có xem cái video về máy tính hồi đầu tiên sẽ hiểu rõ, nó gồm các bóng bán dãn to như bóng điện ấy, chỉ có 2 trạng thái đóng mở mà thôi

    Comment


    • #3
      Nguyên văn bởi wanderer07 Xem bài viết
      vi xử lý, chip, .... được cấu thành từ hàng triệu transistor - là các khóa đóng mở chuyển mạch, và những thành phần khác được tổ chức thành những khối chức năng chuyên biệt, bao gồm đơn vị xử lý số học, khối quản lý bộ nhớ và bộ nhớ đệm, khối luân chuyển dữ liệu và phép toán luận lý suy đoán. - bạn nạp chương trình cho chip, ví dụ là ngôn ngữ C, thì VXL có hiểu đc đâu, phải qua phần mềm rồi chuyển thành các số nhị phân 0 và 1, tức là đóng mở các transistor này thôi, khi bạn set lên mức 1 chẳng hạn thì nó sẽ đóng mở chuyển mạch làm sao cho chân đó lên mức cao, ( có phần làm nhiệm vụ này), nếu bạn có xem cái video về máy tính hồi đầu tiên sẽ hiểu rõ, nó gồm các bóng bán dãn to như bóng điện ấy, chỉ có 2 trạng thái đóng mở mà thôi
      Cảm ơn wanderer, mình sẽ tìm xem thử video bạn nói. Mình từng làm mạch, rồi nạp code cho vi điều khiển này nọ cũng nhiều, cũng biết phần dịch thành mã nhị phân, v.v... nhưng ý mình chính là chỗ làm thế nào mà mấy cái "mã 0101" đó lại có thể "đóng mở các transitor" được ấy?

      Comment


      • #4
        Câu hỏi rất thú vị. Mình hiểu nôm na thế này:
        - Khi bạn lập trình, bạn phải gõ bàn phím. Lực gõ của bạn sẽ tác động đến các công tắc, tạo ra các tín hiệu điện, theo các cách mã hóa khác nhau mà ra các chương trình trên máy tính.
        - Khi bạn nạp chương trình từ máy tính vào VĐK, thực chất là máy tính sẽ đưa các tín hiệu điện vào VĐK theo quy luật mà chương trình của bạn đưa ra. Trạng thái của các tín hiệu này được lưu lại trên các phần từ mình gọi là ROM. Còn tại sao ROM lưu được các trạng thái này thì là câu chuyện khác . Nhưng tóm lại là thông tin đã được lưu lại dưới dạng vật lý.
        - Khi VDK được khởi động lại, trạng thái của ROM sẽ được chuyển thành tín hiệu điện, điều khiển các chức năng của VĐK theo ý bạn.
        Tóm lại là lực gõ bàn phím của bạn cộng với nguồn điện cung cấp cho máy tính và VĐK kết hợp tạo nên các yếu tố vật lý mà bạn nói.
        Yếu tố phi vật chất ở đây là trí tuệ của chúng ta thôi
        Linh kiện điện tử KME
        www.kme.com.vn

        Comment


        • #5
          Sau khi mã nguồn được đưa vào lưu trong ROM.(Thực chất là lưu các giá trị điện áp tương ứng với chuỗi bít 1 hoặc 0 vào trong các ô nhớ trong ROM, thường là các trigo D). Sau khi VDK được khởi động lại, thì thanh ghi lệnh sẽ lần lượt lấy về các chuỗi lệnh nhị phân và địa chỉ toán hạng của lệnh đó. Trong trường hợp này, SETB P1.0(SETB sẽ có opcode là dãy các bít 1 và 0 của riêng nó và toán hạng P1.0 cũng có địa chỉ của nó). Rồi đưa vào bộ xử lý của vi điều khiển( thực chất cũng là đưa một dãy các giá trị điện áp tương ứng với mã opcode của lệnh SETB). CPU thực hiện các bước như nhận lệnh, giải mã lệnh,... rồi đưa ra các tin hiệu điều khiển(cũng là các giá trị điện áp) tới nơi cần sự tác động của tín hiệu điều khiển này(là chân 0 của P1). Nếu xem kỹ trong datasheet, bạn sẽ thấy có sơ đồ nguyên lý làm việc của một chân trong một cổng của vi điều khiển. Tín hiệu điều khiển từ CPU sẽ tác động vào các linh kiện trong sơ đồ nguyên lý của chân đó. Tùy theo cách tác động mà chân đó sẽ nhận giá trị 0 hay 1.

          Bạn nên xem kỹ sơ đồ nguyên lý làm việc của 1 chân của 1 cổng VDK thì sẽ hiểu ngay thôi.

          Comment


          • #6
            câu hỏi của bạn rất hay !!
            khi mới tiếp cận với vi điều khiển mình cũng đã đặt ra câu hỏi tương tự như bạn

            và mình tìm được câu trả lời khà thỏa đáng và dễ hiểu như thế này

            [/url]
            Trong một ví dụ đơn giản nếu tín hiệu ở S có thể được định tuyến tới thanh ghi 1 hoặc thanh ghi 2 ( nhìn sơ đồ chắc bạn hiểu),phụ thuộc vào tính hiệu diều khiển C.
            giả sử một tập hợp các tín hiệu điều khiển C được chứa trong một thanh ghi,bằng cách thay đổi các tín hiệu này (0 hoặc 1) chúng ta sẽ thay đổi được cách kết nối trong mạch,từ đó thay đổi được hoạt động của cả mạch.Đó là cách mà các mạch tạo ra để có thể lập trình được,và chương trình là tập hợp các bit được lưu trữ trong thanh ghi để diều khiển các mạch bên trong.
            Attached Files

            Comment


            • #7
              Nguyên văn bởi eric255 Xem bài viết
              Câu hỏi rất thú vị. Mình hiểu nôm na thế này:
              - Khi bạn lập trình, bạn phải gõ bàn phím. Lực gõ của bạn sẽ tác động đến các công tắc, tạo ra các tín hiệu điện, theo các cách mã hóa khác nhau mà ra các chương trình trên máy tính.
              - Khi bạn nạp chương trình từ máy tính vào VĐK, thực chất là máy tính sẽ đưa các tín hiệu điện vào VĐK theo quy luật mà chương trình của bạn đưa ra. Trạng thái của các tín hiệu này được lưu lại trên các phần từ mình gọi là ROM. Còn tại sao ROM lưu được các trạng thái này thì là câu chuyện khác . Nhưng tóm lại là thông tin đã được lưu lại dưới dạng vật lý.
              - Khi VDK được khởi động lại, trạng thái của ROM sẽ được chuyển thành tín hiệu điện, điều khiển các chức năng của VĐK theo ý bạn.
              Tóm lại là lực gõ bàn phím của bạn cộng với nguồn điện cung cấp cho máy tính và VĐK kết hợp tạo nên các yếu tố vật lý mà bạn nói.
              Yếu tố phi vật chất ở đây là trí tuệ của chúng ta thôi
              Cách hiểu này của bạn mình thấy không khả quan và hợp lý cho lắm.

              Comment


              • #8
                Nguyên văn bởi cooliovato Xem bài viết
                Chào các mems!
                Mình đg là sv điện tử nhưng bỗng nhiên có 1 thắc mắc hết sức cơ bản như sau: làm thế nào mà chương trình phần mềm hoàn toàn phi vật chất lại có thể tác động lên những yếu tố vật lí thực? Ví dụ như khi chân P1.0 của 8051 chẳng hạn đg ở mức thấp tức là áp ra bằng 0V, vậy khi ta SETB P1.0 lên, tức là làm cho nó tích cực và áp ra trở thành 5V, vậy điều gì đã xảy ra bên trong vi điều khiển gây ra sự thay đổi này? Dù thi cử chẳng ai hỏi và nhiều khi làm thực tế cũng chả cần biết làm gì nhưng quả thật mình nghĩ mãi mà ko hiểu đc. Nhờ các mems giúp với!
                Thanks so much!
                Câu hỏi của bạn rất thú vị.
                Tập lệnh của vi điều khiển là được xây dựng bởi phần cứng. Để đơn giản chúng ta lấy lệnh ANL làm ví dụ.

                Tất cả các trường hợp của lệnh ANL đã được người thiết kế xây dựng sẵn mạch điện. Mỗi một trường hợp có một mã lệnh riêng.
                Cụ thể như lệnh ANL iram addr,A có mã lệnh là 0x52
                Hay lệnh ANL iram addr,#data có mã lệnh là 0x53
                Khi gặp mã lệnh nào thì mạch điện tương ứng với mã lệnh đó hoạt động. Nói chung vi điều khiển là tập hợp nhiều mạch điện được xây dựng sẵn cho những trường hợp có thể xảy ra đối với vi điều khiển đó.
                Việc lập trình, biên dịch code là việc sắp xếp thứ tự hoạt động của các mạch điện bên trong vi điều khiển một cách hợp lý để các mạch điện bên trong vi điều khiển đáp ứng mục đích của người lập trình.
                Last edited by OpenDoor; 22-06-2012, 01:48.

                Comment


                • #9
                  Nguyên văn bởi cooliovato Xem bài viết
                  Chào các mems!
                  Mình đg là sv điện tử nhưng bỗng nhiên có 1 thắc mắc hết sức cơ bản như sau: làm thế nào mà chương trình phần mềm hoàn toàn phi vật chất lại có thể tác động lên những yếu tố vật lí thực? Ví dụ như khi chân P1.0 của 8051 chẳng hạn đg ở mức thấp tức là áp ra bằng 0V, vậy khi ta SETB P1.0 lên, tức là làm cho nó tích cực và áp ra trở thành 5V, vậy điều gì đã xảy ra bên trong vi điều khiển gây ra sự thay đổi này? Dù thi cử chẳng ai hỏi và nhiều khi làm thực tế cũng chả cần biết làm gì nhưng quả thật mình nghĩ mãi mà ko hiểu đc. Nhờ các mems giúp với!
                  Thanks so much!
                  Dữ liệu cũng là 1 dạng vật chất mà, nó phải đc lưu trong đĩa, trong ram, trong rom. Còn cái kiểu 1010 chỉ là cách nhìn cho dễ hỉu về chúng, trên thực tế chúng có thể là mạt sắt qua trái qua phải (băng từ), hay là điện thế (trong ram), hay bất cứ thứ gì có 2 trạng thái. Hiện nay ng ta còn mún dữ liệu đc lưu trên phân tử nữa kia.

                  Comment


                  • #10
                    Đọc mấy bài thấy các bác giải thích thật là vãi đái,em học được rõ nhiều

                    Comment


                    • #11
                      Ok, mình đã hiểu được vấn đề rồi, thanks các pác nhiều lắm!

                      Comment


                      • #12
                        Các cao thủ đang đi phức tạp hoá 1 vấn đề.
                        Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

                        Mr.Quỳnh 0978706839

                        Comment

                        Về tác giả

                        Collapse

                        cooliovato Tìm hiểu thêm về cooliovato

                        Bài viết mới nhất

                        Collapse

                        Đang tải...
                        X